c - 如何制作可变参数宏(可变数量的参数)

标签 c g++ c-preprocessor variadic

我想用 C 编写一个宏,它接受任意数量的参数,而不是特定数量

例子:

#define macro( X )  something_complicated( whatever( X ) )

其中 X 是任意数量的参数

我需要它,因为 whatever 已重载并且可以使用 2 或 4 个参数调用。

我尝试定义宏两次,但第二次定义覆盖了第一次!

我正在使用的编译器是 g++(更具体地说,mingw)

最佳答案

C99方式,VC++编译器也支持。

#define FOO(fmt, ...) printf(fmt, ##__VA_ARGS__)

关于c - 如何制作可变参数宏(可变数量的参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/679979/

相关文章:

c - strtok字符串溢出问题

c++ - 使用 g++ 从 cpp 文件和静态库创建共享库

c++ - C和C++不完全数组指针转换规则的区别

c++ - 在 C++ 函数中 #define 会很奇怪吗?

macros - 带 if 语句的 C 预处理器

不包含原型(prototype)的函数类型的兼容性

c - 用 C 语言生成带噪声的正弦波阵列

c - c中变量声明的歧义行为

macos - 如何解决我在尝试将 C++ 与 Assembly 链接时遇到的这个链接器错误?

c++ - #定义: why uppercase?