gpt4 book ai didi

c - 在 C 中将几个参数作为宏传递

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

抱歉英语不好。

假设代码:

#define FOO(x,y) FOO ## x
#define BAR A, B

FOO(A, B) 成功扩展为 FOOA。但是当我编写 FOO(BAR) 时,C 预处理器 (gcc -E) 给出错误

error: macro "FOO" requires 2 arguments, but only 1 given

如果我想将 FOO(BAR) 扩展为 FOOA,我应该如何更改 FOO 宏?

最佳答案

#define FOO(X, Y) FOO ## X
#define BAR A, B

#define APPLY(F, X) F(X)

APPLY(FOO, BAR)

#define FOO(X) FOO_(X)
#define FOO_(X, Y) FOO ## X
#define BAR A, B

FOO(BAR)

关于c - 在 C 中将几个参数作为宏传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13866838/

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