Konstantes Strukturelement initialisieren?
-
Wie bzw. wann kann ich ein Array, das Teil einer Struktur sein soll, mit konstanten Werten initialisieren. Ich habe versucht:
typedef struct{ const unsigned firstIdx[NUMBER_OF_PLAYERS] = {1,17}; }myStruct, *p_myStruct;
... aber der Compiler verweigert die Übersetzung.
Ist es möglich, dass man so ein Array irgendwie initialisiert?
Wie muss ich vorgehen?
-
Das geht nicht. Initialisieren geht dann (und nur dann) wenn du die Variable definierst.
Also:
typedef struct{ const unsigned firstIdx[NUMBER_OF_PLAYERS]; }myStruct, *p_myStruct; int main(void) { myStruct s = {{1, 17}}; }
Wenn du 1 und 17 nicht immer dazuschreiben willst, kannst du ja eine Funktion schreiben, die das macht.
-
#define NUMBER_OF_PLAYERS 15 typedef struct{ const unsigned int firstIdx[NUMBER_OF_PLAYERS]; }myStruct, *p_myStruct; myStruct xyz = { {1,17} }; int main(void) { printf("%d\n",xyz.firstIdx[0]); printf("%d\n",xyz.firstIdx[1]); }
ups...