Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
渡したい共通の引数を共有するいくつかの関数があるので、マクロを使用して、共通の引数を繰り返し書き出さないようにすることはできますか?
例として、次のように動作しますか?
#define STD_ARGS arg1, int arg2, int arg3 foo(int STD_ARGS, int foo_arg1, int foo_arg2); foo(int STD_ARGS, int foo_arg1, int foo_arg2) { ... }
もちろん、それは合法です。-d マクロの展開は#defineトークンの置き換えに他ならず、それらのトークンが何を意味するか (もしあれば) を無視します。
#define
(これが良いアイデアかどうかは、それがどれだけうまく文書化されているか、使用法がどこまで広がっているかなどに依存します。)
はい、動作します。STD_ARGSマクロの働きは、をに置き換えるだけarg1, int arg2, int arg3です。コンパイル前。したがって、それは合法です。
STD_ARGS
arg1, int arg2, int arg3