gpt4 book ai didi

我可以将 __func__ 替换为 C 宏中的标识符名称吗?

转载 作者:行者123 更新时间:2023-12-04 11:38:15 25 4
gpt4 key购买 nike

我想写一个 C 宏来接受这个:

int foo() {
MY_MACRO
}

并将其扩展为:

int foo() {
_macro_var_foo++;
}

我发现我不能使用 __func__,因为它实际上并没有在宏中展开;预处理器将其视为变量。

有什么方法可以让它发挥作用吗?

最佳答案

预处理器不知道函数,只知道源文件和行号。在那个阶段它不执行句法分析,只是文本分析和替换。这就是为什么 __func__ 是一个神奇的变量,而不是像 __FILE____LINE__ 那样神奇的宏。

关于我可以将 __func__ 替换为 C 宏中的标识符名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com