問題タブ [variadic-macros]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1925 参照

c - 可変個引数マクロに引数を渡す方法は?

可変個引数関数があります:

次のように呼び出す必要があります。

ただし、呼び出しを簡単にするために可変個引数マクロを作成したいと思います。

これは、開発者が以下を使用して呼び出すことができるようにするためです。

それ以外の

ただし、どちらの方法でもコンパイラエラーが発生します。

これは可能ですか、それとも時間を無駄にしていますか?私はこれまで可変個引数関数を使用したことがないので、よくわかりません。私の関数は機能します...完全な宣言を使用して呼び出し、必要なファイルに書き込みました。

0 投票する
2 に答える
1672 参照

c++ - 連結文字列の可変長マクロを生成するにはどうすればよいですか

ここで行き詰まりました...

p> 20個の引数があってもCONCATマクロを生成するにはどうすればよいですか? BOOST_PP_SEQ_FOR_EACHを使用できるかもしれませんが、その方法がわかりませんか?

0 投票する
1 に答える
4809 参照

c - 「ISOC99ではREST引数を使用する必要があります」を回避する

gcc 4.6.3(-ansi -pedanticを使用)では、次のコードがあります。

と呼ばれるとき:

警告が表示されます:

警告:ISO C99では、REST引数を使用する必要があります

と呼ばれるとき:

私はしません。どうすればこれを抑えることができますか?

0 投票する
1 に答える
2507 参照

c - __VA_ARGS__ を使用して MACRO で渡されたすべてのパラメーターをキャストする

FOO(...)不明な数のパラメーターを受け取るマクロがあります。これらすべてのパラメーターを uint にキャストしたいと思います。それを達成する方法はありますか?

0 投票する
2 に答える
1105 参照

c++ - マクロのオーバーロード

パラメータの数でマクロをオーバーロードしようとしています。
もちろん、実際にマクロをオーバーロードすることはできません。

可変長マクロを使用して適切なマクロを選択しようとしました(__VA_ARGS__存在しない場合は、その前の最後のコマを削除するはずであるという事実を使用して - GCC Reference):

アイデアは、__VA_ARGS__存在する場合、4つの引数をCHOOSERに渡す必要があり、3番目の引数は未使用の引数で「消えた」はずであるというものでした。したがって、TEST1 が選択されます。

パラメータがない場合は__VA_ARGS__ヌルになり、カンマを削除する必要があるため、TEST2が選択されて使用されます。

__VA_ARGS__したがって、全体がすでに展開された後、おそらく前処理段階の最後にのみ削除されるため、それは機能しないと思います。

それで、どうすればそのようなことをすることができますか?(vs2010)

0 投票する
3 に答える
827 参照

macros - GNU Make で $(call ...) を使用して可変長マクロを実行する方法

次の行に沿ってメイクファイルで使用するマクロを作成しました。

次のようなもので回避できます。

...しかし、可変引数マクロをより明示的にサポートするものがあるかどうかに興味があります。

0 投票する
1 に答える
10333 参照

c - 3 つのドットを使用した C の #define

これは、これら 2 つのマクロの定義です。コードの後半で、LOGIこのLOGWように使用されます

そしてこのように

私は複雑なマクロを避けようとしているので#define、一般的に、このマクロが実際に何を意味するのか理解できません。ここでの 3 つのドット表記の役割は何ですか? これにより、コードの後半で何が#define変更されますか?

明らかに、3つのドットが不特定の数の引数を示すために使用されていることは知っていますが、この状況の読み方がわかりません。

0 投票する
1 に答える
373 参照

c++ - 省略記号が引数として渡された引数をカウントする可変個引数テンプレート

この質問はhttps://stackoverflow.com/a/5365786/383306からのフォローアップです。

引数の一部として省略記号を渡すときにマクロトリックを機能させるにはどうすればよいですか?