このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MISRA C++:2008 Rule 5-0-5
There shall be no implicit floating-integral conversions.
説明
ルール定義
There shall be no implicit floating-integral conversions. 1
根拠
浮動小数点型を整数型に変換すると、情報が失われます。浮動小数点型から整数型に明示的にキャストしている場合を除き、情報の喪失が意図的かどうかが明確ではありません。また、浮動小数点値が整数型で表現できない場合、その動作は未定義になります。
整数型から浮動小数点型への変換により、値の不正確な表現が発生する可能性があります。変換の誤差が以降の演算で累積し、予期しない結果につながる可能性があります。
Polyspace 実装
チェッカーは、浮動小数点型 (float
および double
) と整数型 (short
、int
など) の間の暗黙的な変換にフラグを設定します。
5-0-4 および 5-0-6 が同時に適用される場合、このルールが優先されます。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
グループ: Expressions |
カテゴリ: 必要 |
バージョン履歴
R2013b で導入
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.