可変個引数マクロの作り方(可変数引数)

C99 方式で、VC++ コンパイラでもサポートされています。

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

__VA_ARGS__ それを行う標準的な方法です。必要がない場合は、コンパイラ固有のハックを使用しないでください。

元の投稿にコメントできないのは本当に腹立たしいです。いずれにしても、C++ は C のスーパーセットではありません。C コードを C++ コンパイラでコンパイルするのは本当にばかげています。 Donny Donny がしないことはしないでください。


私はそれが可能だとは思わない. 引数を個別に必要としない限り、二重括弧でそれを偽造することができる.

#define macro(ARGS) some_complicated (whatever ARGS)
// ...
macro((a,b,c))
macro((d,e))