Hallo zusammen. Ich habe noch ein kleines Problem beim C Programmieren. Ich programmiere denn XC866 (8051-Familie). Das Programm ist uVision3. Die Initialisierung habe ich mit DaVE gemacht. Ich habe diese Sachen initialisiert: ADC,UART,IO,T2. Bei Project Workspace wird das jetzt so dargestellt: Main.C ADC.C UART.C T2.C IO.C Jetzt zu meinem Problem. Wie muss ich das machen das ich eine Variable über alle Programmteile gebrauchen kann? z.B. Beim T2 habe ich einen Zähler(int Zaehler), mit diesem möchte ich im Main.C weiterarbeiten. Dann kommt aber der Fehler "undefined identifiere". Der ganze Rest funktioniert eigentlich ganz gut. Gruss und Danke Matthias
Am besten machst Du zur Datei T2.c noch eine Header Datei a la T2.h, in der Du die betreffenden funktionen per extern forwärtsdeklarierst: T2.h: #ifndef T2_H #define T2_H extern int Zaehler #endif Diese Headerdatei kannst Du dann ins Main.c includen und dann ist der Zähler auch im Main verfügbar. Also: Main.c: #include "T2.h"
Hallo Danke für die Antwort. Hat schon funktioniert. Muss ich im C File com T2 den Eintrag int zaehler; so lassen. Wenn ich ihn lösche kommen Warnungen. Es funktioniert aber wenn ich den Eintrag dort stehen lasse. Gruss und Danke
Bitte, bitte. Ja, Du musst den Eintrag dort stehen lassen. Aber am besten includest Du die Datei T2.h auch noch in T2.c. T2.c: #include "T2.h" Der Grund ist, dass der Compiler dann die richtigen Fehlermeldungen ausgibt, falls die Vorwärtsdeklaration vom Headerfile T2.h nicht mit der tatsächlichen Definition in T2.c übereinstimmt. Wie gesagt ist das im Headerfile nur eine Vorwärtsdeklaration, darum brauchts noch die eigentliche Deklaration der Variablen im T2.c File, also "int Zaehler;".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.