ホームページ > バックエンド開発 > C++ > C の複数文字の定数によって警告が発生するのはなぜですか?また、警告を回避するにはどうすればよいですか?

C の複数文字の定数によって警告が発生するのはなぜですか?また、警告を回避するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-18 20:51:11
オリジナル
392 人が閲覧しました

Why Do Multi-Character Constants in C Cause Warnings and How Can They Be Avoided?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート