Hallo, wie und wo muss ich eine Variable deklarieren, dass sie global auf Datei ebene verfügbar ist. Erklärung: In der Datei usart.c wird die variable i manipuliert. In der Datei main.c möchte ich die Variable i abfragen.
Am besten machst du das so:
global.h
********
extern int i; // der Name i, ist schlecht nimm was anderes
// Abgesehen davon:
// das extern sagt dem Compiler, dass es irgendwo
// eine Variable namens 'i' gibt, und dass die
// vom Typ int ist.
usart.c
*******
#include "global.h"
// durch den include hier, wird die extern
// Deklaration eingebracht.
// Ab jetzt weiss der Compiler, dass es ein i
// gibt welches vom Typ int ist
void foo()
{
i = 5;
}
main.c
******
#include "global.h"
int i; // und hier ist i tatsaechlich. In voller Pracht
// Der vorhergehende include ist zwar nicht not-
// wendig, hilft aber manchmal Fehler abzufangen.
// zb. wenn du in global.h das i zu einem float
// umwandelts, hier aber darauf vergisst und nach
// wie vor i als int definierst.
int main()
{
i = 7; // dieses i und das in uart.c sind ein und dieselbe
// Variable
}
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.