需求

调试时,希望打印信息能够包含文件名,行号,函数名等

解决

编译器有提供相应的宏,可以如下使用,注意,行号是数值。

printf("error in %s %d %s\n", __FILE__, __LINE__, __FUNCTION__);

除了这些以外,还有其他的一些可用的宏,比如说:

  • __DATE__ : 当前系统日期 Apr 19 2019
  • __TIME__ : 当前系统时间 例如 15:39:58
  • __TIMESTAMP__ : 当前时间日期 例如: printf(_TIMESTAMP_); 打印结果 Fri Apr 19 16:24:31 2019

参考

C/C++中的_FUNCTION_,__FILE__和__LINE__

系统常用宏定义__TIME__ DATE __LINE__等

C/C++ 宏定义 FILE__、_LINE_、_func_、__TIME