SA0077:枚举类型与不匹配 CASE 表情
检测代码位置,其中 CASE 语句将枚举值与非枚举类型混合在一起。
理由:在 CASE 结构中混合枚举值和整数值会违反数据类型安全性,降低代码的可读性并影响可维护性。枚举值确保语义清晰度。使用原始整数值会带来小错误的风险,并使代码更难理解。枚举的数据类型更改也会破坏基于整数的分支,而这些分支可能会
重要性:低
例 84. 例子
{attribute 'qualified_only'}
{attribute 'strict'}
TYPE DUT_MyEnum :
(
One := 1,
Two := 2,
Three := 3,
Four := 4
);
END_TYPEPROGRAM PRG_Case VAR diVar : DINT; xTemp : BOOL; eMyEnum : DUT_MyEnum; END_VAR
CASE diVar OF
1 :
xTemp := FALSE;
DUT_MyEnum.Two : // SA0077
xTemp := TRUE;
ELSE
xTemp := NOT xTemp;
END_CASE
CASE eMyEnum OF
1 : // SA0077
xTemp := FALSE;
DUT_MyEnum.Two:
xTemp := TRUE;
ELSE
xTemp := NOT xTemp;
END_CASE输出在 留言 看法:
SA0077:类型与 CASE 表达式不匹配