C语言打印当前所在函数名、文件名、行号 printf("[%s %s] %s: %s: %d\n", \ __DATE__, __TIME__, __FILE__, __func__, __LINE__); 内核驱动中: #ifdefMY_DEBUGprintk("[%s] %s: %d\n", \ __FILE__, __FUNCTION__, __LINE__);#endif 说明:...
intcount =1;classCBase{public:CBase(){//打印当前行所在文件、行号、函数,以及其它信息。TRACE_CMH_2("BASE: [%d]\n", count++);}};classCSub:publicCBase{public:CSub(){//打印当前行所在文件、行号、函数,以及其它信息。TRACE_CMH_1("SUB: [%d]\n", count++);}};intmain(intargc,char**arg...
1) __VA_ARGS__ 是一个可变参数的宏,总体来说就是将左边宏中 ... 的内容原样抄写在右边 __VA_ARGS__ 所在的位置。 2) __FILE__ 宏在预编译时会替换成当前的源文件名 3) __LINE__ 宏在预编译时会替换成当前的行号 4) __FUNCTION__ 宏在预编译时会替换成当前的函数名称 5)类似的宏还有__DATE...
这时候我们可以使用宏定义来封装一个宏打印函数,这个宏打印函数可以显示打印信息所在的文件、行数、函数名等信息。如: #define DBG_PRINTF(fmt, args...) \ {\ printf("<<File:%s Line:%d Function:%s>> ", __FILE__, __LINE__, __FUNCTION__);\ printf(fmt, ##args);\ } 使用范例: 可见,使用...
linux windows C语言 获取当前函数名称及行号,linux获取当前函数名称及行号在打印输出时经常要知道打印所在函数和行号,下面的语句可以方便我们调试:intshmId=0;printf("[%s][%d]menuerrorshmKey=%d\n",__FUNCTION__,__LINE__,shmId);
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:printf("%s%d",__FILE__,__LINE__);。3、编译器运行test.cpp文件,此时成功打印了源文件的名字和代码行数。
DebugPrintf("当前所在行号:%d\r\n", __LINE__); DebugPrintf("当前源文件名称:%s\r\n", __FILE__); DebugPrintf("当前固件编译日期:%s\r\n", __DATE__); DebugPrintf("当前固件编译时间:%s\r\n", __TIME__); return 0; } 四、STM32单片机上封装printf函数 ...
void printStar();int main(){ int a, b;printf("请输入你要的行数和列数:");scanf("%d %d", &a, &b);printStar(a,b);return 0;} void printStar(int r, int c){ int i, j;for(i =0 ; i< r; i++){ for(j = 0; j<c; j++){ printf("*");} printf("\n");}...
程序输出结果为: 预定义宏常用于程序运行异常的跟踪,__FILE__,__LINE__,__FUNCTION__这是最常用的组合,表示文件名、行数和函数名。除了以上提到的这五个预定义宏之外,还有C99标准提出的预定义宏如:__STDC_HOSTED__等,有兴趣的可以查一下。
键入 bt (backtrace)打印函数调用栈,第一行即为发生 Core 的最后调用处。键入 f {num} 可切换至...