在宏定义中如何添加__FUNCTION__?-灵析社区

无敌英俊大师兄

在宏定义中如何添加__FUNCTION__? 代码如下: #include void _LOG(const char* strFormat, ...) { printf("res=%s\n", strFormat); } #define LOG(strFormat, ...) _LOG(__FUNCTION__ ":" strFormat, ##__VA_ARGS__) //在这里添加__FUNCTION__后编译会报错,添加其它字符串就不会报错。 int main() { LOG("%s", "Hello, world!"); return 0; } 尝试将__FUNCTION__改为字符串就不会报错。

阅读量:15

点赞量:0

问AI
""__FUNCTION__"" (https://link.segmentfault.com/?enc=wFw2Suavkc%2FXGW3EdLmBxw%3D%3D.KT15rhrPzxHlE5g2qfGwbThXZrW6kfkH%2FSHuK%2Bddy50A0hJjs4j3VjIfRBe1TKBdRAySMZj2U8Fu7MvqiOYESQ%3D%3D) "__FUNCTION__" 是一个变量,不是一个宏。现在标准里用的名字是 "__func__" 。 因为它是一个变量,所以它不能进行字符串拼接。 你可以用 "%s" 输出它: #define LOG(strFormat, ...) _LOG( "%s:" strFormat, __FUNCTION__, ##__VA_ARGS__)