【答案解析】某些标识符是预定义的,扩展后将生成特定的信息,它们同预处理器表达式运算符#define一样,不能取消定义或重新定义。预定义标识符见下表。
预定义标识符
|
函 数
|
描 述
|
__FILE__
|
包含当前程序文件名的字符串,包含了详细路径,如 G:/program/study/c+/test1.c
|
__LINE__
|
包含当前源文件行数的十进制常量
|
__DATE__
|
包含编译日期的字符串字面值
|
__STDC__
|
如果编译器遵循ANSI C标准,它就是个非零值
|
__TIME__
|
包含编译时间的字符串字面值
|
__FUNC__(在有些编译系统中为__FUNCTION__)
|
当前所在函数名,在编译器的较高版本中支持
|
|
其中,标识符__LINE__和__FILE__通常用来调试程序,标识符__DATE__和__TIME__通常用来在边以后的程序中加入一个时间标志,以区分程序的不同版本。当要求程序严格遵循ANSIC标准时,标识符__sTDC__就会被赋值为1。