問題タブ [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.
c - 可変個引数マクロに引数を渡す方法は?
可変個引数関数があります:
次のように呼び出す必要があります。
ただし、呼び出しを簡単にするために可変個引数マクロを作成したいと思います。
これは、開発者が以下を使用して呼び出すことができるようにするためです。
それ以外の
ただし、どちらの方法でもコンパイラエラーが発生します。
これは可能ですか、それとも時間を無駄にしていますか?私はこれまで可変個引数関数を使用したことがないので、よくわかりません。私の関数は機能します...完全な宣言を使用して呼び出し、必要なファイルに書き込みました。
c++ - 連結文字列の可変長マクロを生成するにはどうすればよいですか
ここで行き詰まりました...
c - 「ISOC99ではREST引数を使用する必要があります」を回避する
gcc 4.6.3(-ansi -pedanticを使用)では、次のコードがあります。
と呼ばれるとき:
警告が表示されます:
警告:ISO C99では、REST引数を使用する必要があります
と呼ばれるとき:
私はしません。どうすればこれを抑えることができますか?
c - __VA_ARGS__ を使用して MACRO で渡されたすべてのパラメーターをキャストする
FOO(...)
不明な数のパラメーターを受け取るマクロがあります。これらすべてのパラメーターを uint にキャストしたいと思います。それを達成する方法はありますか?
c++ - マクロのオーバーロード
パラメータの数でマクロをオーバーロードしようとしています。
もちろん、実際にマクロをオーバーロードすることはできません。
可変長マクロを使用して適切なマクロを選択しようとしました(__VA_ARGS__
存在しない場合は、その前の最後のコマを削除するはずであるという事実を使用して - GCC Reference):
アイデアは、__VA_ARGS__
存在する場合、4つの引数をCHOOSERに渡す必要があり、3番目の引数は未使用の引数で「消えた」はずであるというものでした。したがって、TEST1 が選択されます。
パラメータがない場合は__VA_ARGS__
ヌルになり、カンマを削除する必要があるため、TEST2が選択されて使用されます。
__VA_ARGS__
したがって、全体がすでに展開された後、おそらく前処理段階の最後にのみ削除されるため、それは機能しないと思います。
それで、どうすればそのようなことをすることができますか?(vs2010)
macros - GNU Make で $(call ...) を使用して可変長マクロを実行する方法
次の行に沿ってメイクファイルで使用するマクロを作成しました。
次のようなもので回避できます。
...しかし、可変引数マクロをより明示的にサポートするものがあるかどうかに興味があります。
c - 3 つのドットを使用した C の #define
これは、これら 2 つのマクロの定義です。コードの後半で、LOGI
このLOGW
ように使用されます
そしてこのように
私は複雑なマクロを避けようとしているので#define
、一般的に、このマクロが実際に何を意味するのか理解できません。ここでの 3 つのドット表記の役割は何ですか? これにより、コードの後半で何が#define
変更されますか?
明らかに、3つのドットが不特定の数の引数を示すために使用されていることは知っていますが、この状況の読み方がわかりません。
c++ - 省略記号が引数として渡された引数をカウントする可変個引数テンプレート
この質問はhttps://stackoverflow.com/a/5365786/383306からのフォローアップです。
引数の一部として省略記号を渡すときにマクロトリックを機能させるにはどうすればよいですか?