gpt4 book ai didi

c - 参数长度可变的宏

转载 作者:太空狗 更新时间:2023-10-29 15:29:50 25 4
gpt4 key购买 nike

有没有办法#define一个参数长度可变的宏?

#define CALL(ar1, ar2, ar3)
do something
#endif

在 C 代码中

CALL(0);
CALL(0,1);
CALL(0,1,2)

全部调用上面的 CALL 宏。如果没有使用 ar2、ar3,预处理器将忽略带有 ar2 或 ar3 的行。

最佳答案

是的,看看这个:http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html

关键字是 __VA_ARGS__(可变参数宏):

宏可以像函数一样被声明为接受可变数量的参数。定义宏的语法类似于函数。这是一个例子:

 #define eprintf(...) fprintf (stderr, __VA_ARGS__)

关于c - 参数长度可变的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14759843/

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