3
コードには、関数の戻り状態をチェックする頻繁な繰り返し行があります。私はこのためのマクロを定義すると考える:このマクロチェックの状態に問題があり、失敗した場合には返信します。
#define RETURN_IF_FAILED(x) { int stat = (x); if (FAILED(stat)) return stat; }
パラメータx
は、関数の呼び出しも可能性があるため、ローカル変数です。
私は、マクロを使用するという奇妙なアーティファクトがあり、私はそれほど熟練していないことを知っています。このマクロに問題があるかどうか尋ねたいと思います。ありがとう。
(としてくださいは、例外を使用することをお勧めしません - 私はこのスタイルを自分自身を憎むが、それはそれはここで行うの方法です)
ありがとう、これは ';'のためです。私はこのトリックについてお読みしました... – davka
@davka:まさに。 ';'が問題です! – Nawaz
なぜdo {'と'} while(0) 'ですか? '{'と '}'は十分でしょうか? – peoro