gpt4 book ai didi

c - 宏替换

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:37 24 4
gpt4 key购买 nike

我写了以下代码:

#define GATE(name, num)do{\
name##list[num] = #name;\
}while(0)

char* name[] = {"hello", "world", "byebye"};

int i;
for(i = 0; i < 3; i++)
{
GATE(name[i],0);
}

显然,我无法得到我想要的,GATE(name[0],0) 被替换为 hellolist[0] = "hello",但是name[0]list[0] = "hello",这会导致 gcc 错误。

我想知道如何使用宏制作我想要的东西?

最佳答案

不,这是不可能的。预处理器在编译器启动之前进行文本替换。因此预处理器实际上从未看到字符串“hello” - 因此它无法发出 hellolist

关于c - 宏替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10977411/

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