#define verwenden
-
Ich habe eine große, konstante Struktur in einem großen Programm.
Auf diese Struktur wird über einen Zeiger zugegriffen.Nun möchte ich alle Zugriffe auf Strukturname->BestimmtesElement "umleiten" auf eine andere Variable. Wie mache ich das am günstigsten?
Ich dachte sowas wie
#define Strukturname->BestimmtesElement Variablenname
aber das scheint nicht zu gehen
-
Ne, das geht nicht - da hat der Präprozessor seine Grenzen erreicht
(in C++ könntest du für sowas statische Member oder Referenzen verwenden)
-
Warum sollte das nicht gehen ...
struct blah { int p; }; int main() { struct blah *b = malloc(sizeof(struct blah)); b->p = 1; printf("%d\n", b->p); #define x b->p x = 2; printf("%d\n", x); #undef x free(b); return 0; }
-
feigling schrieb:
Warum sollte das nicht gehen ...
Ja, so rum geht es
Aber de OP wollte es genau andersherum machen:
int x; #define b->p x b->p = 7;
(und das geht nicht)