コンパイラ警告 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) との比較