小编典典

__FILE__、__LINE__ 和 __FUNCTION__ 在 C++ 中的用法

all

假设您的 C++ 编译器支持它们,是否有任何特别的理由
使用__FILE____LINE__以及__FUNCTION__用于日志记录和调试目的?

我主要关心向用户提供误导性数据——例如,报告不正确的行号或函数作为优化的结果——从而导致性能下降。

__FILE__基本上,我可以信任__LINE__始终__FUNCTION__做正确的事吗? __


阅读 161

收藏
2022-07-28

共1个答案

小编典典

__FUNCTION__是非标准的,__func__存在于 C99 / C++11 中。其他(__LINE____FILE__)都很好。

它总是会报告正确的文件和行(如果您选择使用__FUNCTION__/ ,它会报告功能__func__)。优化不是因素,因为它是编译时宏扩展;它
永远不会 以任何方式影响性能。

2022-07-28