使用__FILE__和__LINE__宏可打印文件名与行号,结合__func__封装成DEBUG_LOG宏便于调试输出,并可通过条件编译控制输出,提升问题定位效率。

在C++开发中,调试信息对排查问题非常有帮助。打印当前代码所在的文件名和行号,能快速定位输出日志的来源位置。C++提供了预定义宏来实现这一功能,最常用的是 __FILE__ 和 __LINE__。
C++标准定义了几个有用的预定义宏:
你可以像普通变量一样在代码中使用它们:
#include <iostream>
<p>void debug_log() {
std::cout << "File: " << <strong>FILE</strong> << ", Line: " << <strong>LINE</strong> << std::endl;
}</p><p>int main() {
debug_log();
return 0;
}</p>输出可能类似于:
立即学习“C++免费学习笔记(深入)”;
File: main.cpp, Line: 7为了便于频繁使用,通常将这些宏封装成一个调试输出宏:
#define DEBUG_LOG()
std::cout << "[" << __FILE__ << ":" << __LINE__ << "] " << __func__ << " called.
"
在代码中调用:
int main() {
DEBUG_LOG();
return 0;
}
输出示例:
[main.cpp:15] main called.#ifdef DEBUG # define DEBUG_LOG() std::cout << "[" << __FILE__ << ":" << __LINE__ << "] " #else # define DEBUG_LOG() #endif
基本上就这些。利用好预定义宏,可以显著提升调试效率。不复杂但容易忽略细节。
以上就是C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号