预定义宏¶
C标准预定义宏¶
__LINE____func____FILE__NDEBUG:参考_DEBUG和NDEBUG的区别,其中,_DEBUG是Visual Studio定义的,NDEBUG是C/C++标准。
GNU C预定义宏¶
__COUNTER__: 扩展为从0开始的连续整数值,每次在源码中出现,则加1。不同源文件的__COUNTER__互不影响。
可以用来生成唯一的命名。 参考链接。
#define CONCAT_IMPL(x,y) x##y
#define CONCAT(x,y) CONCAT_IMPL(x,y)
#define VAR(name) CONCAT(name,__COUNTER__)
int main() {
int VAR(myvar); // 展开为 int myvar0;
int VAR(myvar); // 展开为 int myvar1;
int VAR(myvar); // 展开为 int myvar2;
}
program_invocation_name:参考man page