算法研发---对宏定义#define相关研究



是否看到这样的东东有种头大了的感受:
  NTF_HR(m_pBaseClass->SetStr(m_hGPROG.hfCoef, (const float*)hfCoef) );
程序员

你必定会很好奇NTF_HR()这是什么东西? 函数?不是吧,长得这么“丑”?编程

若是你看到相似下面这样一堆东东:
#ifndef _CRT_WPERROR_DEFINED
#define _CRT_WPERROR_DEFINED
 {_wperror(_In_opt_z_ const wchar_t * _ErrMsg);\
 _fgetwc_nolock(_Inout_ FILE * _File);\
 _fputwc_nolock(_In_ wchar_t _Ch, _Inout_ FILE * _File);\
 _ungetwc_nolock(_In_ wint_t _Ch, _Inout_ FILE * _File);}
有些大神写的甚至不换行,很牛逼的样子,看着都醉了;
数据结构


不废话了,在这里总结一些宏定义的做用以及用法(基本用法就不说了,大学C语言老师告诉你了):
宏定义目的是为程序员在编程时提供必定的方便,并能在必定程度上提升程序的运行效率,可能刚开始接触程序时候不太理解,不过随着深刻,你会深入的感觉到它存在的合理性;
若是不理解上面的代码:给你简化一些,Give you a sample example as follow:
#define MYTEST(p) {int jj=p;if(jj>0) {cout << "我爱C++" << endl;}\
                             else if(jj<0) cout <<"不恨C++" << endl; \
                             else cout << "Fuck C++" << endl; }
若是你写个测试函数,以下:
int main()
{
MYTEST(100);
MYTEST(0);
MYTEST(-100);
函数

}
Look the result,you will be excited to see it ,it's rather funny ,isn't it ?
偷偷告诉你斜线\无非就是个换行符;你会疑问这里的p是个啥东西?呵呵,他就是一个代号,p是什么类型,有你决定,它能够是个句柄、任意类型的变量,也能够是个其余类型的数据结构;
测试


感悟:有时候不是困难来的太忽然,而是你没有挑战困难的勇气;做为 A Software Engineer ,不少问题能够从哲学中找到答案;保持清醒的头脑,不断给本身充电,你才会走的更远.................spa

相关文章
相关标签/搜索