一、前言 在后台程序运行出问题时,需要查看详尽的日志,C语言提供记录日志触发点文件名、行号、函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__;先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息。 二、ANSI C标准宏 __...
大家都知道,在C语言中,我们可以通过宏FILE、 __LINE__来获取文件名和行号,而在Java语言中,则可以通过StackTraceElement类来获取文件名、类名、方法名、行号,具体代码如下: public static int getLineNumber( ){ StackTraceElement[] stackTrace = new Throwable().getStackTrace(); return stackTrace[1].getLineNumber...
C语言中获取当前文件位置、行号、时间 在C语言中,预定义了几个标准宏,使用它们即可轻易获取代码文件的信息: __FILE__ : 当前源文件名字 __LINE__: 当前的行号 __TIME__: 编译时间 __DATE__: 编译日期 注意:宏定义大写与前后均为两个下划线 prinf("Which file: %s \n",__FILE__); 获取当前...