gpt4 book ai didi

c - 在另一个#define中使用#define的参数名称

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

有没有办法将#define 参数的名称用作另一个#define 参数?例如:

#define TEST 1

#define FOO(X) foo_##X

#define BAR(X) FOO(##X)

BAR(TEST)

结果是:

foo_TEST

不是:

foo_1

这不起作用,因为它给出了:

pasting "(" and "TEST" does not give a valid preprocessing token

最佳答案

删除 BAR 宏中的双“#”。

查看工作示例: http://ideone.com/hEhkKn

#include <stdio.h>

#define FOO(X) foo_##X

#define BAR(X) FOO(X)


int main(void) {

int BAR(hello);
return 0;
}

关于您更新的问题:

如果你想使用一个定义好的名字,比如'TEST',那么把你的代码改成#define 测试测试

#include <stdio.h>

#define TEST TEST
#define FOO(X) foo_##X
#define BAR(X) FOO(X)

int BAR(TEST) (int v) {
return v;
}

int main(void) {
return foo_TEST(0);
}

关于c - 在另一个#define中使用#define的参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31652811/

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