编译器警告 C0354
信息: 一种枚举类型(<类型名 1>) 与另一种枚举类型(<类型名 2>) 的比较
可能的错误原因:枚举类型用于比较运算符。
错误更正:
使用预定义的整数数据类型(例如:
INT) 而不是程序代码中的枚举类型。将枚举变量的值复制到辅助变量中(示例:
INT变量)并在比较运算符中使用辅助变量。
例 473. 警告示例
{attribute 'qualified_only'}
{attribute 'strict'}
TYPE ENUM1:
(
enum_member1 := 0,
enum_member2 := 1
);
END_TYPE
{attribute 'qualified_only'}
{attribute 'strict'}
TYPE ENUM2:
(
enum_member := 0
);
END_TYPE
PROGRAM PLC_PRG
VAR
enum1 : ENUM1;
enum2 : ENUM2;
i:INT;
END_VAR
enum1 := 0;
enum2 := 0;
IF enum1 > enum2 THEN
i := 1;
END_IF;
这个 IF 语句生成以下警告。
消息:
C0354:一种枚举类型 (ENUM1) 与另一种枚举类型 (ENUM2) 的比较