【发布时间】:2015-03-10 01:38:51
【问题描述】:
我正在阅读 C/C++ 中的 __FUNCTION__ / __func__ (它们用于打印使用它们的函数的名称)。我读到的每个地方都说这些是宏并且在预处理时被替换。因此,我通过使用命令gcc -E prog.c 查看预处理后的输出对此进行了调查。但是我看到__func__和__FUNCTION__都没有被预处理器替换为函数名。
那么,它是一个宏吗?如果不是,它是什么以及它是如何实现的?
编辑
甚至尝试过cpp prog.c。但仍然没有被替换。
另外__FILE__, __LINE__, and __FUNCTION__ usage in C++ 这个帖子说它永远不会影响性能。请澄清。
【问题讨论】: