警告: 符号付き整数式と符号なし整数式の比較
はじめに
演習の作業中「Accelerated C」の 2-3 で、ユーザーはコンパイラ警告に遭遇しました。 「符号付き整数式と符号なし整数式の比較」この問題は、符号付き整数 (int) を文字列の長さに一般的に使用されるデータ型である string::size_type と比較するときに発生します。
警告の原因
警告が発生します符号付き整数型と符号なし整数型の範囲が異なるためです。これらのタイプを比較すると、予期しない結果が生じる可能性があります。コンパイラは、混乱を招く結果が生じる可能性をプログラマに警告するためにこの警告を発行します。
推奨プラクティス
この問題を回避するには、整数が符号付きであるかどうかを明示的に指定することをお勧めします。無署名。整数を文字列の長さまたは他の符号なし値と比較する場合、比較されるデータ型と一致するように整数を unsigned int または size_t として宣言します。これにより、比較で意図した結果が得られることが保証されます。
コード例
提供されたコードでは、string::size_type 変数と一致するように、padtopbottom を unsigned int として宣言する必要があります。 c:
追加注
以上がC で「符号付き整数式と符号なし整数式の比較」という警告が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。