私はこのようになりますswitch文書かれている。このようなヘッダで定義された書類とcase文1 + statement2:コーディングが貧弱ですか?
switch(statement){
case statement1:
break;
case statement2:
break;
case statement3:
break;
case statement4:
break;
case statement1 + statement2:
break;
case statement1 + statement3:
break;
case statement1 + statement4:
break;
default:
break;
}
:
#define statement1 999
#define statement2 32898
#define statement3 32899
#define statement4 32900
これは、コンパイルして使用して正常に動作しますビジュアルスタジオ2003.
私にとってこれはより多くの変数を定義する必要性からより多くのステートメントを提供します。前のコードでどのステートメントが選択されているかに応じて、私は異なるオプションを持つことができます。
コミュニティはこのコードをどのように認識しますか?受け入れられましたか?悪い練習ですか?避けられる?
私が見ることができる唯一のリスクは、定義33897,33898,33899が存在するかどうかです。
基本的には、ラベルはコンパイル時の数値定数である必要があります。あなたが尋ねることは、もっと個人的なスタイルの問題です。それは非常に主観的な質問であり、実際にはここにはあまり適していません。 –
if-elseステートメントは私にとって非常によかったようです。 –
@Someprogrammerdudeああ、これは非常に客観的にひどいです。定数は2つのフラグの累乗ではないので、それらの加算は一意の値をもたらさないため、(b)定数ではなくマクロにすることは名前汚染につながります。 –