预定义宏
#if defined(__linux)
#ifdef LINUX2
C标准预定义宏
__LINE__
__func__
__FILE__
NDEBUG
:参考_DEBUG和NDEBUG的区别,其中,_DEBUG
是Visual Studio定义的,NDEBUG
是C/C++标准。
GNU C预定义宏
__COUNTER__
: 扩展为从0
开始的连续整数值,每次在源码中出现,则加1
。不同源文件的__COUNTER__
互不影响。可以用来生成唯一的命名。
参考链接。1
2
3
4
5
6
7
8
int main() {
int VAR(myvar); // 展开为 int myvar0;
int VAR(myvar); // 展开为 int myvar1;
int VAR(myvar); // 展开为 int myvar2;
}program_invocation_name
:参考man page
#pragma
#pragma weak
Synopsis
1 |
#pragma weak
means that even if the definition of the symbol is not found, no error will be reported.
Example
1 |
|