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' への明示的な縮小変換