假设您的C++编译器支持它们,是否有任何特殊原因不使用__FILE__,__LINE__以及__FUNCTION__用于记录和调试目的?
我主要关注的是为用户提供误导性数据 - 例如,由于优化而报告错误的行号或功能,或者因此导致性能下降.
基本上,我可以信任__FILE__,__LINE__并__FUNCTION__以永远做正确的事?
我想创建包含info(),debug()和error()函数的log.c文件.这些功能无需打印文件名,行号等.因此,当我调用此函数之一时,我想转储调用者的文件名,行号和函数名.那么我们如何准确追溯?有没有办法追溯C,或者,如果我们使用宏,这怎么办?