Hallo zusammen,
ich würde mir gerne Code automatisch vom Präprozessor generieren lassen.
Folgendes Problem.
Es sind folgende Variablen vorhanden.
1 |
|
2 | int var0;
|
3 | int var1;
|
4 | int var2;
|
5 | int var3;
|
6 | int var4;
|
Die Anzahl der Variablen wird von einem anderen Code-Generator erzeugt
und sind fortlaufend numeriert.
Ich kenne die maximale Anzahl der Variablen
Um die Variablen im Programm leichter anzusprechen würde ich die Pointer
gerne in ein Array schieben.
Es ist etwas umständlich das von Hand zu machen in der Art
1 | vars[0] = &var0;
|
2 | vars[1] = &var1;
|
3 | vars[2] = &var2;
|
4 | vars[3] = &var3;
|
5 | vars[4] = &var4;
|
Da sich die Anzahl der Variablen ändern kann, wäre es schön, wenn ich
nur das define MAX_VAR ändern bräuchte und die Zuweisungen werden
automatisch generiert.
Kann man das über Makros lösen?
Also ein Makro wie
1 | #define GENERATE_ALL_ASSIGNMENTS(i)
|
2 |
|
3 | GENERATE_ALL_ASSIGNMENTS(MAX_VAR)
|
Einen ersten Schritt hab ich schon
1 | #define GENERATE_ASSIGNMENT(i) vars(i) = &var ## i
|
Jetzt fehlt "nur" eine Präprozessor Schleife darum, die das mit
unterschiedlichen Parameter aufruft.
Vielen Dank