C Enum (Anzahl einträge)
-
Guten Morgen Leute,
ganz einfach Frage
Folgendes:
#define CONTOUR_COUNT 2 typedef enum eContour_t { ALARM_CONTOUR = 0, WARNING_CONTOUR = 1 } eContour_t;
ich habe ein Enum, mit n einträgen , habe entsprechende Arrays
stContour_t m_contour[CONTOUR_COUNT];
welche deren größe der anzahl der enum-Einträge entprechen, und die einträge gleichzeit der indizes des Array sind
for(int i= o ; i< CONTOUR_COUNT; ++i) { eContour_t e = (eContour_t)i; ..... }
gibt es ne möglichkeit dass der compiler mir die anzahl der enum einträge bestimmt, oder muss ich das so wie beschrieben machen, oder geht eleganter?
Danke euch
-
@SoIntMan Du könntest auch einfach vom ersten Eintrag bis zum letzten Eintrag iterieren.
-
Wenn du durchgängig von 0-n numerierst ohne Lücken:
#define CONTOUR_COUNT 2 typedef enum eContour_t { ALARM_CONTOUR = 0, WARNING_CONTOUR = 1, CONTOUR_COUNT } eContour_t;
-
@Schlangenmensch sagte in C Enum (Anzahl einträge):
@SoIntMan Du könntest auch einfach vom ersten Eintrag bis zum letzten Eintrag iterieren.
hmm.. kannst du ein beispiel machen?
@Tyrdal sagte in C Enum (Anzahl einträge):
Wenn du durchgängig von 0-n numerierst ohne Lücken:
ohh. .das is clever.. cool;)
-
@SoIntMan Ich meine das so:
#include <stdio.h> typedef enum eContour_t { ALARM_CONTOUR = 0, WARNING_CONTOUR, } eContour_t; int main() { for(int i = ALARM_CONTOUR; i <= WARNING_CONTOUR; ++i ) { printf("%i", i); } return 0; }
Wenn du immer um einen hochzählst und keine direkten Zuweisungen auf andere Werte hast, steigt der Wert ja immer um 1 an. d.h. du kannst einfach vom ersten zum letzten Eintrag iterieren, in dem du den ersten als Startwert und den letzten als inkludierte Grenze nimmst.
-
@Schlangenmensch sagte in C Enum (Anzahl einträge):
Wenn du immer um einen hochzählst und keine direkten Zuweisungen auf andere Werte hast, steigt der Wert ja immer um 1 an. d.h. du kannst einfach vom ersten zum letzten Eintrag iterieren, in dem du den ersten als Startwert und den letzten als inkludierte Grenze nimmst.
ok verstanden, quasi das selbe wie Tyrdal beschrieben hat.. danke dir /euch
-
@SoIntMan sagte in C Enum (Anzahl einträge):
quasi das selbe wie Tyrdal beschrieben hat.
Bei Trydal brauchst du den Code nicht ändern, wenn ein Eintrag im enum dazu kommt.