私はいくつか古いCプログラムを維持しています。まったく同じパラメータを持つ関数(少なくとも10)では、プログラマはマクロを利用して同じパラメータを繰り返し入力することを避けました。ここでは、マクロ定義は次のとおりです。同じパラメータを持つ関数が多数ある場合は、パラメータを複数回入力するのを避けるためにマクロを使用する必要がありますか?
#define FUNC_DECL(foo) int foo(int p1, int p2, ....)
私は同じパラメータで関数を定義したい場合はその後、私は唯一のタイプを必要とする:
FUNC_DECL(func1)
同じパラメータを何度も入力するのは面倒な作業を回避することに加えて、この実装の他の利点はありますか?
このような実装では、少し混乱します。それの他の欠点はありますか?
このような実装は優れていますか?
利点は、_do_の定義が同じ引数リストを持つことです。欠点は通常のCのようには見えないということです.10個のパラメータを構造体型(またはその2つ)にパッケージ化して、代わりに単純な関数インタフェースを作るのはなぜですか?全体として、マクロベースのスキームはそんなに好きではありませんが、時にはそれを使う十分な理由があります。これは境界線の例かもしれません。 –
同じパラメータを持つ関数が少なくとも10個あります。現在、すべての関数は3つのパラメータ@ JonathanLeffler –
ああ、3つのパラメータのみを持っていますか?マクロを使用するための言い訳はありません - 私はそれが10のパラメータだと思った。透明性はより重要です。私はコードがマクロを使用して明確になるとは思わない。とにかく余分なパラメータを使用するようにコードを変更しなければならない場合は、3つではなく4つのパラメータを使用する10の関数を変更する必要があります。それを離れて、その頭を離れて! –