M. B. schrieb:
> Was setze ich für das x in der Klammer (3. Zeile) ein??
Den initialen Wert der Variablen - wenn er von 0 abweicht. Globale
Variablen werden standardmäßig mit 0 initialisiert, deshalb kannst Du
das EXT_Init(0) auch weglassen, wenn der initiale Wert 0 sein soll.
Schreibe dann einfach:
EXT int r1;
EXT int l1;
EXT int r2;
EXT int l2;
> Warum klappt das mit dem extern nicht?? Das extern (5. codzeile) wird
> als normaler Text angezeigt!?
Diesen Satz habe ich nicht verstanden. Gibt es eine
Compiler-Fehlermeldung? Wenn ja, welche.
Zur Erklärung: Der Preprocessor ist ein normaler, dummer Text-Ersetzer.
Wenn C_MAIN gesetzt ist, wird aus:
1 | EXT int r1 EXT_Init(0) ---> int r1 = 0;
|
denn "EXT" wird mit "" (Leerstring) und "EXT_Init(x)" wird mit "= x"
ersetzt.
Wenn C_MAIN NICHT gesetzt ist:
1 | EXT int r1 EXT_Init(0) ---> extern int r1;
|
denn dann wird "EXT" mit "extern" und "EXT_Init(x)" mit "" (Leerstring)
ersetzt.
Wichtig: Das ganze klappt nur, wenn in GENAU EINEM Source "#define
C_MAIN" VOR dem include Deiner var.h setzt