Probabilmente una domanda ingenua - ho programmato 20 anni fa e da allora non ho più codificato. Il mio ricordo di come il C preprocessor
opere è atrofizzata in modo significativo da allora ...Formato array per #define (preprocessore C)
Sto scrivendo un programma molto semplice C
e sto cercando di dichiarare un paio di matrici globali statiche, ma la dimensione del arrays
sarebbe dipendente (su un modo non banale) su una variabile MODE
. Qualcosa come l'esempio semplificato di seguito.
Due punti veloci: So che potrei solo le dimensioni del arrays
secondo la più grande dimensione necessaria per qualsiasi MODE
, ma io non voglio che perché (a differenza del semplice esempio di seguito) a volte una manciata di queste dimensioni sono sarà estremamente grande mentre gli altri sono piccoli.
Inoltre, voglio utilizzare array globali definiti staticamente, anziché allocarli dinamicamente in fase di runtime. Voglio che il compilatore abbia le dimensioni al momento della compilazione.
//** 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};' –
Le macro sono sostituzioni. – Jack
Non vedo cosa intendi con [S1]. cosa stai cercando di fare lì? –