Enums vergleichen

moppi

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moinmoin,

ich habe folg. Problem:

Ich habe mir eine enumeration erzeugt:
Code:
TYPE SystemStates :
(
	i1:=0,
	i2,
	i3,
	i4, 
	i5
);

Jetzt sind 2 Variablen vom Typ SystemStates:
Code:
StateReq: SystemStates := i1;
StateAck: SystemStates := i1;

Jetzt möchte ich vergleichen:

Code:
IF StateReq>StateAck THEN
  BLABLA
END_IF

Genau dieser Vergleich funktioniert nicht;
Ich dachte enums sind intern einfach Integer-Werte, oder muss ich das noch casten??

Grüße


Moppi
 
Hallo,
ENum's mögen unterschwellig INT's sein - sie werden aber vom System ganz sicher anders behandelt. Wenn du die um-castest wird das wohl funktionieren. Ich verstehe allerdings auch nicht wirklich, was dir der Vergleich auf größer hier bringt - im Grunde weißt du doch gar nicht wirklich (bzw. ist es dir eigentlich egal) welcher Wert welchem Status entspricht und wann ein Status größer oder kleiner als ein anderer ist. Von da her ist hier eigentlich nur Gleichheit oder Ungleichheit als Abfrage sinnvoll - und das wird das System sicherlich können ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Liegt der Fehler vielleicht einfach nur daran, das Deine beiden die gleichen Werte haben?????
Mit
StateReq: SystemStates := i2;
StateAck: SystemStates := i1;

IF StateReq >StateAck THEN
BLABLA:=BLABLA+1;
END_IF

funktioniert es bei mir. Der Blabla Zähler zählt hoch!
 
Zurück
Oben