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) との比較