Frage zur Variabel Deklarion (Assambler in C)
-
Problem war so:
folgendere Code geht nich:
void main(){ funkt(); } void funkt(){ int k=0; k++; }
gleiche code nur mit globaler int definiton geht:
int k=0; void main(){ funkt(); } void funkt(){ k++; }
Jemand ne erklärung?
-
1. was hat der Code mit assembler zu tun?
2. Wie lautet den die Compilerfehlermeldung?
3. Du solltest evtl. mal die funktion funkt vor main deklarieren.
-
das ist ein c compiler für microkontroller...
Keil uVision 3
kein PC
dachte da machen variabeln deklaration nen unterschied.. kenn mich net so aus.. aber wenn du die funktio nvor main prototype'st dann gehts es ??
-
hab nochmal geschaut.. also es müssen variabeln int global defiert sein sonst kennt der compiler die variablen in den funktionen nicht:
int a,b,c; // <- Müssen Global sein kann das jemand erklären warum??? void funkA(); void funkB(); void funkC(); void main(){ funkA(); funkB(); funkC(); }: void funkA(){ a=5; } void funkB(){ b=10; } void funkC(){ c=15; }
-
Das ist richtig.
Siehe oben, was bluecode schon mal erwähnt hatte...
-
ne ihr habt das falsche verstanden, ich will ja nur in der funktion auf k zugreifen!!!!
wenn ich schreibe:
void funk(){ int k=0; k++; }
mekkert der compiler -> varibale k nicht deklariert oder gefunden !!
schreib ich "int k" global in der datei:
int k; //<- global void Funkt(){ k=0; k++; } main(){.....}
dann klappts
-
BorisDieKlinge schrieb:
schreib ich "int k" global in der datei:
int k; //<- global void Funkt(){ k=0; k++; } main(){.....}
dann klappts
int k; // Dann spendier diesem Code, der so funktioniert, eine eigene Übersetzungseinheit: funkt.c // int k; ist dann nur noch für/in Funkt() sichtbar! void Funkt(){ k=0; k++; }
-
alles klar, aber kann das überhaupt sein das man alle variblen global anlegen muss?
-
> alles klar, aber kann das überhaupt sein das man alle variblen global anlegen
> muss?nein, normal kann das irgendwie nicht sein...
Liegt es vielleicht an Compiler-Einstellungen (was ich mir schwer vorstellen kann, denn das würde der ganzen Philosophie bezüglich der Funktionen widersprechen).
Gibt es da irgendwelche Parameter, die an den Compiler übergeben werden?
-
Dieser Thread wurde von Moderator/in Nobuo T aus dem Forum Assembler in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.