Wat is een enum precies

Status
Niet open voor verdere reacties.

goedlichtJoost

Gebruiker
Lid geworden
7 mrt 2012
Berichten
477
Hallo allemaal,

Ik heb een vraagje, wat is binnen C een enum precies?
Ik heb vanuit een voorbeeld in mijn globale variabelen (H-file) de volgende code staan:
Code:
enum eStates_CC
{
	Motor_Uit		 ,
	Motor_AAN		 ,
	CC_AAN			 ,
	CC_Overruled
};

Nu kan ik in een C file gewoon zetten:
Code:
int CC_Status = Motor_AAN;

Ik denk dat een enum een soort keuzelijst is voor de variabelen? maar moet ik dan niet aangeven dat CC_Status de keuze heeft uit die enum?

Zou iemand mij hier uitleg over kunnen geven?

Alvast bedankt,
Met vriendelijke groeten

Joost
 
Hallo vanschagen,

bedankt voor je reactie, het is mij echter nog niet helemaal duidelijk.
Oke het is dus eigenlijk een lijst met waardes : 1-2-3-4.... en die corrensponderen dan met leesbare items, dus rood, geel , blauw.
Maar, kun je nu ook enums door elkaar gebruiken dan?
dus enum 1 =
a
b
c

en enum 2 =

AAN
UIT
STOP
.
Nu kun je dus zeggen int waarde = a (nu staat er dus eigenlijk 1) maar AAN heeft dezelfde waarde?
Maakt dit het allemaal niet erg onduidelijk?

Wanneer heeft zoiets nut?

alvast bedankt
gr
Joost
 
Het gebruik van enums is voor de programmeur. Op die manier kan je voorkomen dat je magic numbers gebruikt. Immers "int CC_Status = Motor_AAN;" is een stuk duidelijker dan "int CC_Status = 1;".

In plaats van enums kan je ook contanten gebruiken:
[cpp]const int MOTOR_UIT = 0;
const int MOTOR_AAN = 1;[/cpp]
Het voordeel van enums boven deze constanten is dat je waardes die bij elkaar horen ook bij elkaar staan en dat je, in C++ ten minste, de naam van de enum als type (bijv. als parameter van een functie) kan gebruiken.
 
Bedankt alle!
Het is een stuk duidelijker geworden, nog veel te leren maar dat is voor een volgend topic.

Merci,
gr
Joost
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan