gpt4 book ai didi

c - 将变量类型与 token 合并

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:07 25 4
gpt4 key购买 nike

我想要一个宏,它可以将一个变量的类型与另一个标记合并以创建一个新标记。一个随机的例子:

int var;
int make_token(var);

这会变成:

int var;
int var_int;

我试过像这样定义宏:

#define make_token(x) x ## _ ## typeof(x)

但是整个事情扩展到:

int var;
int var_typeof(var)

有没有办法不用在宏的参数中传递变量的类型就可以做到这一点?

最佳答案

由于 typeof 是在编译的后期阶段确定的,在预处理之后,这是不可能的。

此外,typeof 不会扩展为类型标识符;它不适用于文本/代码级别,而是在语义级别。它是编译器解释并用于确定其内部数据结构类型的关键字。

您唯一能做的就是将类型添加到宏中:​​

#define TYPED_VARIABLE(type, identifier) type identifier ## _ ## type

然而,正如一位智者最近所说:“使用匈牙利符号是无脑的,是一个巨大的错误,所以不要这样做!”我完全同意。

关于c - 将变量类型与 token 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17381174/

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