不,C99标准有以下内容:
6.10.8预定义的宏名称
以下宏名称应由实现定义:
__DATE__
__FILE__
__LINE__
__STDC__
__STDC_HOSTED__
__STDC_MB_MIGHT_NEQ_WC__
__STDC_VERSION__
__TIME__
Run Code Online (Sandbox Code Playgroud)
以下宏名称由实现有条件地定义:
__STDC_IEC_559__
__STDC_IEC_559_COMPLEX__
__STDC_ISO_10646__
Run Code Online (Sandbox Code Playgroud)
6.4.2.2预定义标识符
标识符
__func__
应由翻译者隐式声明,就像紧跟每个函数定义的左括号一样,声明
static const char __func__[] = "function-name";
Run Code Online (Sandbox Code Playgroud)
出现了,其中function-name是词法封闭函数的名称.63)
正如我想其他编译器所做的那样,gcc增加了一些扩展.