51CTO学堂为您提供C语言调试技巧:利用宏打印文件名、函数名和行号嵌入式软件调试技术专题(2):printf打印高阶技巧视频课程等各种IT领域实战培训课程视频及精品班培训课程
在上面的代码中,我们首先定义了一个宏LOGD,然后在这个宏的实现中,使用了__android_log_print函数来输出log。在输出log的时候,我们使用了%s来打印当前函数名__func__,并使用__VA_ARGS__来打印其他参数。 流程图 下面是一个流程图,展示了打印当前函数名的宏的实现流程: StartDefine_MacroLog_FunctionOutput_Log ...
myFunction(); return0; } 在这个示例中,DEBUG_PRINT宏用于打印调试信息。当定义了DEBUG宏时,该宏会将调试信息写入名为 "debug.log" 的文件中,包括函数名、时间戳、行数以及自定义的调试信息。当未定义DEBUG宏时,DEBUG_PRINT宏不会执行任何操作。 在调用DEBUG_PRINT宏时,你可以传递任何你想要打印到文件的调试信...
不定长参数宏,printf默认打印文件名、函数名和行号,#include<stdio.h>#definePRTINT_LOG(fmt,args...)do{printf("FILE:[%s]FUNC:[%s]LINE:[%d]:"fmt,__FILE__,__FUNCTI
简介:C --- 自定义一个宏打印当前文件名、函数名、行号 1. #include <stdio.h>2.3. #define DEBUG(format,...) printf("[File:%s, Line:%d] "format, __FILE__, __LINE__, ##__VA_ARGS__)4.5.6. int main(void)7. {8. DEBUG("hello world\n");9. return 0;10. }11....
__FILE__ 宏在预编译时会替换成当前的源文件名__LINE__ 宏在预编译时会替换成当前的行号__FUNCTION__ 宏在预编译时会替换成当前的函数名称
m = 2 arr = Range("a1").CurrentRegion n = UBound(arr, 2)ReDim Preserve arr(1 To UBound(arr, 1), 1 To n * 2)s = Application.RoundUp((UBound(arr) - 1) / 2, 0)For r = s + 2 To UBound(arr, 1)For c = 1 To n arr(m, n + c) = arr(r, c)arr(r, c...
Ctrl+F2打印 Ctrl+F3名称管理器Ctrl+F4保存并关闭文件Ctrl+F5还原窗口 Ctrl+F6切换窗口 Ctrl+F7移动窗口 Ctrl+F8调整窗口大小 Ctrl+F9最小化窗口 Ctrl+F10最大化窗口 Ctrl+F11新建宏表 Ctrl+F12打开文件 Shift+F2插入批注 Shift+F3插入函数 Shft+F4查找空单元格 Shift+F5弹出查找对话框 Shift+F8选择不相邻的...
CC++打印源文件名和行号函数名的宏 CC++打印源⽂件名和⾏号函数名的宏__FILE__ 宏在预编译时会替换成当前的源⽂件名 __LINE__ 宏在预编译时会替换成当前的⾏号 __FUNCTION__ 宏在预编译时会替换成当前的函数名称