次のコードスニペットではコンパイルエラーは発生しませんが、期待される出力が得られませんが、これは単純なif-else方法で行うことができますが、マクロを使用してやりたいと思います。ここではc
は文字変数です。 VOWELS
マクロの左端の値ではなく、すべてがないあるためだ与えられた文字が母音かどうかをテストするマクロをどのように定義できますか?
#define VOWELS 'a' || 'e' || 'i' || 'o' || 'u' || 'A' || 'E' || 'I' || 'O' || 'U'
if(c == VOWELS)
{
printf("vowel = %c\n", c);
}
です。 'if(c == 'a' || 'e' || 'i' || ....)が結果です。あなたが手入力した場合、それは望みどおりに機能しませんので、マクロの使用は形式的なものです。だから自分自身に尋ねなさい、あなたが望むものに拡大表現をどのように変えるのだろうか?次に、マクロで可能かどうかを尋ねます(おそらくパラメータ化されたマクロ?)。 – WhozCraig
[可能な場合はコンパートメントの条件を記述する方法がありますか?](http://stackoverflow.com/questions/39150884/is-there-a-shorter-way-to-write-compound-if-条件) – technosaurus