SA0133:明示的なナローイング変換
大きいデータ型から小さいデータ型への明示的に実行された変換を決定します。
根拠: 多数の型変換が行われる場合は、変数に間違ったデータ型を選択したことを示している可能性があります。このため、データ型変換の明示的な理由を要求するプログラミング ガイドラインがあります。
重要度:低
例 56. 例
PROGRAM SA0133 VAR siVar:SINT; diVar:DINT; liVar:LINT; byVar:BYTE; uiVar:UINT; dwVar:DWORD; lwVar:LWORD; rVar:REAL; lrVar:LREAL; END_VAR
siVar := LINT_TO_SINT(liVar); // SA0133 byVar := DINT_TO_BYTE(diVar); // SA0133 siVar := DWORD_TO_SINT(dwVar); // SA0133 uiVar := LREAL_TO_UINT(lrVar); // SA0133 rVar := LWORD_TO_REAL(lwVar); // SA0133
での出力 メッセージ ビュー:
SA0133: 型 'LINT' から型 'SINT' への明示的な縮小変換
SA0133: 型 'DINT' から型 'BYTE' への明示的な縮小変換
SA0133: 型 'DWORD' から型 'SINT' への明示的な絞り込み変換
SA0133: 'LREAL' 型から 'UINT' 型への明示的な縮小変換
SA0133: 型 'LWORD' から型 'REAL' への明示的な縮小変換