0

这是一个更普遍的问题。在记录相关功能中使用LINEFILE是否有任何性能损失?我一直像这样专门使用它们:

在 C++ 中

Logger::debug("Incoming msg from rs232,__LINE__, __FILE__);

而且我的程序运行速度非常慢..我只是想确认删除这些是否会给我带来任何显着的性能提升,因为从所有地方删除它们是一项艰巨的任务。

谢谢

4

2 回答 2

9

一点都不。它们是扩展为某些常量的宏。

__LINE__扩展为十进制整数常量的行号和__FILE__C 字符串常量。

于 2013-05-29T04:37:01.163 回答
8

不,它们由预处理器扩展,如果在这样的代码中使用:

printf("This is " __FILE__ ".\n");

然后编译器将连接字符串文字,不会对性能产生影响。

另一方面,如果它们作为额外的参数传递,如下所示:

printf("This is %s.\n", __FILE__);

然后可能会对性能产生影响,但只会产生与以下内容相同的影响:

printf("This is %s.\n", "an answer on Stack Overflow");
于 2013-05-29T04:36:49.000 回答