检测从较大数据类型到较小数据类型的显式转换
理由大量的类型转换可能表明你为变量选择了错误的数据类型。因此,有一些编程指南要求明确说明数据类型转换的理由。
重要性:低
示例
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: Explicit narrowing conversion from type 'LINT' to type 'SINT' --> SA0133: Explicit narrowing conversion from type 'DINT' to type 'BYTE' --> SA0133: Explicit narrowing conversion from type 'DWORD' to type 'SINT' --> SA0133: Explicit narrowing conversion from type 'LREAL' to type 'UINT' --> SA0133: Explicit narrowing conversion from type 'LWORD' to type 'REAL'