コードが短ければボーナスポイントが得られるコーディング競争の準備をしています。私はスイッチのcase文から 'case'キーワードを '#define'できるかどうか疑問に思っていたので、スイッチのcase文を競合で使用しなければならない場合、スイッチに何度も 'case'キーワードを入力する必要はありませんステートメント。#define switch case文でC++キーワード 'case'?
例コードスニペット:
switch(input_string[0])
{
case '+':p = (a + b);t;
case '-':p = (a - b);t;
case '*':p = (a * b);t;
case '/':p = (a/b);t;
case '%':p = (a % b);t;
case '^':p = pow(a,b);t;
}
、B及びpは整数です。文字input_string [0]が '+'のとき、aとbが加算され、その合計がpに代入されます。
重要:上記のコードスニペットの「t」はbreak文です。私は '#define t break;'を使用しました。私はbreakキーワードを複数回書く必要はありません。私は 'case'キーワードで同じことができるのだろうかと思っていました。
私は「の#define Cケース」としてケースを定義し、私は結果のコードスニペットは、次のようになりますように、スイッチケースの文で「ケース」を使用する必要がどこに「C」を使用することができます
switch(e[i])
{
c '+':p = (a + b);t;
c '-':p = (a - b);t;
c '*':p = (a * b);t;
c '/':p = (a/b);t;
c '%':p = (a % b);t;
c '^':p = pow(a,b);t;
}
はい、あなたはそれを行うことができ
ちょうどそれを試してみてください。しかし、これが競争が「ショートコード」の意味であることを確認してください。それが難読化コンテストでない限り、これは反対に、コードが判読不能になるため、否定的な点を招いています。難読化の競合以外では、「短いコード」は通常、文字数ではなく、複雑さと定型文の観点から測定されます。 –
この質問を書くのに時間がかかりましたが、あなたは自分で試してみることができました。 – 0x5453
ITYM '#define c case'ではなく、' #define c case'です。それは非常に悪い考えです。 'c'というローカル変数を定義すると、いつでも' case'に変換され、やりがいが起こります。 –