Prawdopodobnie naiwne pytanie - programowałem 20 lat temu i od tego czasu nie kodowałem. Moja pamięć o tym, jak C preprocessor
Works atrofii znacząco od tego czasu ...Format matrycy dla #define (preprocesor C)
Piszę bardzo prosty C
program i próbuję zadeklarować kilka statycznych tablic globalnych, ale wielkość arrays
będzie zależny (na niebagatelny sposób) na zmiennej MODE
. Coś jak uproszczony przykład poniżej.
Dwa krótkie punkty: Wiem, że mogłem po prostu zmienić rozmiar arrays
według największego rozmiaru wymaganego przez dowolny MODE
, ale nie chcę tego, ponieważ (inaczej niż w uproszczonym przykładzie poniżej) czasami garść tych wymiarów jest będą bardzo duże, a inne małe.
Ponadto chcę używać statycznie zdefiniowanych globalnych tablic - zamiast dynamicznie alokować je w czasie wykonywania. Chcę, aby kompilator miał rozmiary w czasie kompilacji.
//** Simplified example of what I'd like to do **//
#define SIZE_LIST_1[5] = {2, 7, 23, 33, 12, 76} // I don't think this is valid syntax
#define SIZE_LIST_2[5] = {11, 65, 222, 112, 444}
#define MODE 4
#define S1 SIZE_LIST_1[MODE]
#define S2 SIZE_LIST_2[MODE]
int a[S1], b[S2];
'int SIZE_LIST_1 [5] = {2,7 ... 76};' –
Makra są podstawieniami. – Jack
Nie rozumiem, co masz na myśli przez [S1]. co tam próbujesz? –