#define N 100 ok #define N 100; error #define N = 100 error int a[N] => int a[= 100] error #define pin int* pin a,b; error(a为int*,b为int) 2. 特殊用法 #define BEGIN { #define END } int main BEGIN printf("haha"); END 定义一个循环 #define LOOP for(;;) 重新定义数据类型 #define IT int 3.带参数的宏 #define MAX(x,y) ((x)>(y)?(x):(y)) 4.宏的特殊单行定义 #define C(x) #x 将宏参数进行字符串字面量化并且加""号 const char* p = C(hello,world); printf("p=%s\n",p);//结果为hello,world 5.define 的多行定义 define可以替代多行的代码,在每一个换行的时候加上一个"\" #define func() printf("hello \ ,world") int main(void){ func(); //hello ,world return 0; } 6.在大规模的开发过程中最重要的是条件编译 #ifdef WINDOW #endif ... ... #ifdef LINUX #endif 7.取消宏 #undef 标识符 8.条件编译 #ifdef XXX #else #endif 9.有用的宏 __LINE__被编译文件的行数(整型) __FILE__被编译文件的名字(字符型) __DATE__编译日期(字符型) __TIME__编译时间(字符型) printf("__LINE__:%d\n",__LINE__); 5 printf("__FILE__:%s\n",__FILE__); 01.c printf("__DATE__:%s\n",__DATE__); Dec 24 2016 printf("__TIME__:%s\n",__TIME__); 14:23:36
本文转自神ge 51CTO博客,原文链接:http://blog.51cto.com/12218412/1885750