看源代码中有如下宏定义:
#define TYPEDEF
与平常的宏定义有点不一样,于是查了下这种宏有什么用,总结如下:
1、做标记,进行条件编译。
等价于“#define __TYPE_DEFINE__ do {} while (0)”
#include<stdio.h>
#define __TYPE_DEFINE__
int main()
{
#ifdef __TYPE_DEFINE__
printf("1.With Macro TYPE DEFINE\n");
#else
printf("2.Without Macro TYPE DEFINE\n");
#endif
return 0;
}
上面代码输出:
1.With Macro TYPE DEFINE
如果注释掉“#define __TYPE_DEFINE__”,则输出变成:
2.Without Macro TYPE DEFINE
2、做注释用,帮助理解
#include<stdio.h>
#define HUMAN
int HUMAN liming(int height) //liming is human
{
printf("%d\n",height);
}
int main()
{
liming(180);
return 0;
}
3、占位符,用于不同平台移植
linux环境开发的代码,可以定义部分Win32相关的空宏,方便移植。