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.
{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)