Wahrscheinlich eine naive Frage - ich programmierte vor 20 Jahren und habe seitdem nicht viel codiert. Meine Erinnerung an wie die C preprocessor
Arbeiten hat sich seither deutlich verkümmert ...Array-Format für #define (C-Präprozessor)
ich ein sehr einfaches C
Programm schreibe und ich versuche, ein paar statische globale Arrays zu erklären, aber die Größe des arrays
wäre abhängig (auf ein nicht-trivialer Weg) auf einer MODE
Variable. So etwas wie das vereinfachte Beispiel unten.
Zwei schnelle Punkte: Ich weiß, ich könnte nur die Größe arrays
nach der größten Größe von MODE
benötigt, aber ich möchte nicht, weil (im Gegensatz zum vereinfachten Beispiel unten) manchmal eine Handvoll dieser Dimensionen sind wird extrem groß, während andere winzig sind.
Außerdem möchte ich statisch definierte globale Arrays verwenden - anstatt sie zur Laufzeit dynamisch zuzuordnen. Ich möchte, dass der Compiler die Größen zur Kompilierzeit hat.
//** 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};' –
Makros sind Ersetzungen. – Jack
Ich sehe nicht, was Sie mit einem [S1] meinen. Was versuchst du dort zu machen? –