Skip to main content

编译器警告 C0354

信息: 一种枚举类型(<类型名 1>) 与另一种枚举类型(<类型名 2>) 的比较

可能的错误原因:枚举类型用于比较运算符。

错误更正:

  • 使用预定义的整数数据类型(例如: INT) 而不是程序代码中的枚举类型。

  • 将枚举变量的值复制到辅助变量中(示例: INT 变量)并在比较运算符中使用辅助变量。

468. 警告示例
{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) 的比较