Skip to main content

Avertissement du compilateur C0354

Message: Comparaison d'un type d'énumération (<nom de type 1>) avec un autre (<nom de type 2>)

Cause d'erreur possible: Les types d'énumération sont utilisés dans les opérateurs de comparaison.

Correction d'erreur:

  • Utilisez des types de données entiers prédéfinis (exemple : INT) au lieu des types d'énumération dans le code de votre programme.

  • Copiez les valeurs des variables d'énumération dans des variables auxiliaires (exemple : INT variables) et utilisez les variables auxiliaires dans l'opérateur de comparaison.

Exemple 468. Exemple d'avertissement
{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;

Le IF Une déclaration produit l'avertissement suivant.

Message :

C0354 : Comparaison d'un type d'énumération (ENUM1) avec un autre (ENUM2)