特定の数ではなく、任意の数のパラメーターを受け入れるマクロをCで記述したい
例:
#define macro( X ) something_complicated( whatever( X ) )
どこX
任意の数のパラメータであります
whatever
オーバーロードされており、2つまたは4つのパラメーターで呼び出すことができるため、これが必要です。
マクロを2回定義しようとしましたが、2番目の定義が最初の定義を上書きしました。
私が使用しているコンパイラはg ++(より具体的には、mingw)です。
8
CまたはC ++が必要ですか?Cを使用している場合、なぜC ++コンパイラでコンパイルするのですか?C ++には標準の可変長マクロがないため、適切なC99可変長マクロを使用するには、C ++コンパイラーではなく、C99(gccなど)をサポートするCコンパイラーでコンパイルする必要があります。
—
Chris Lutz、
まあ、私はC ++がこの点でCのスーパーセットであると想定しました..
—
09年
tigcc.ticalc.org/doc/cpp.html#SEC13には、可変個のマクロの詳細な説明があります。
—
Gnubie
将来の読者のために:CはC ++の派生物ではありません。それらは多くの多くのものを共有しますが、それらが互いのサブセットおよびスーパーセットになることを阻止するルールがあります。
—
Pharap 2017