C での複数文字定数の警告
C では、整数定数に複数の文字が含まれている場合に複数文字定数の警告が発行されます。次のコードを考えてみましょう:
int waveHeader = 'EVAW';
整定数 'EVAW' に 4 文字が含まれているため、このコードは警告を生成します。
C 標準 (§6.4.4.4/10) に従っています。 、複数文字の整定数の値は実装定義です。これは、コンパイラが異なれば定数の解釈も異なる可能性があることを意味します。たとえば、次のコードは、あるコンパイラでは警告なしでコンパイルされ、別のコンパイラでは警告が発生する可能性があります:
long x = '\xde\xad\xbe\xef';
潜在的な移植性の問題を回避するには、整数型で複数文字の定数を使用しないことをお勧めします。代わりに、「意味のない」数値を使用するか、同じ値を持つ const 変数を定義することを検討してください。
たとえば、次のコードは上記の例よりも移植性が高くなります。
#define EVAW 'EVAW' int waveHeader = EVAW;
以上がC の複数文字の定数によって警告が発生するのはなぜですか?また、警告を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。