Mod Zero は使用できないのですか? X % 0 が無効な理由
プログラマーとして、私たちは剰余を求めるためにモジュロ演算に頼ることがよくあります。ただし、X % 0 を実行すると、エラーが発生するか、予期しない動作が発生します。なぜそうなるのでしょうか?
未定義の動作
C 標準 (2003) によれば、X % 0 は無効な式です。セクション 5.6/4 では次のように述べられています:
"... / または % の 2 番目のオペランドがゼロの場合、動作は未定義です..."
したがって、実行を試みるコードはすべてこの演算は未定義の動作 (UB) を呼び出します。
実装定義の動作
モジュロ演算に関連するもう 1 つの紛らわしい動作には、負の数が関係します。たとえば、-5 % 2 は常に -(5 % 2) と同じ結果を生成するとは限りません。標準では次のように指定されています:
"... 両方のオペランドが負でない場合、剰余は負ではありません。そうでない場合、剰余の符号は実装定義です。"
つまり、負の数を使用したモジュロ演算の動作は標準で明示的に定義されておらず、実装によって異なる場合があります。
以上がX % 0 がプログラミングで無効なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。