C标准中一些预定义的宏

C语言中的__FILE__、__LINE__和__DATE__等都在头文件#include

前边几个是比较常用到的

__LINE__ : 当前程序行的行号,表示为十进制整型常量
__FILE__  : 当前源文件名,表示字符串型常量
__DATE__ :转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime产生的。
__TIME__ :转换的时间,表示"hh:mm:ss"形式的字符串型常量,是有asctime产生的。(asctime貌似是指的一个函数)
__PRETTY_FUNCTION__:显示函数及参数

__func__:当前所在函数名

 

以下几个不常用到

__STDC__ 编辑器为ISO兼容实现时位十进制整型常量
__STDC_VERSION__ 如何实现复合C89整部1,则这个宏的值为19940SL;如果实现符合C99,则这个宏的值为199901L;否则数值是未定义
__STDC_EOBTED__ (C99)实现为宿主实现时为1,实现为独立实现为0
__STDC_IEC_559__ (C99)浮点数实现复合IBC 60559标准时定义为1,否者数值是未定义
__STDC_IEC_559_COMPLEX__ (C99)复数运算实现复合IBC 60559标准时定义为1,否者数值是未定义
__STDC_ISO_10646__ (C99)定义为长整型常量,yyyymmL表示wchar_t值复合ISO 10646标准及其指定年月的修订补充,否则数值未定义
 

printf( "The file is %s.\n", __FILE__ );
//...../test.c
printf( "The date is %s.\n", __DATE__ );
// Jun  6 2020
printf( "The time is %s.\n", __TIME__ );
// 16:55:23
printf( "This is line %d.\n", __LINE__ );
// 6
printf( "This function is %s.\n", __func__ );
// main

printf("行号:%d 函数名:%s, %s, %s \n", __LINE__,__func__,__FUNCTION__, __PRETTY_FUNCTION__);
//行号:92 函数名:main, main, int main(int, const char **)

 

 

 

你可能感兴趣的:(Mac,OS)