Hallo, eine static Variable außerhalb einer Funktion ist ja nur in diesem Codefile sichtbar. Was passiert, wenn das Codefile in ein anderes Codefile inkludiert? Kann ich dann aus beiden Files auf die Variable zugreifen?
Ich weiss es auch nicht sicher, aber ich glaube nicht. Aber Du kannst doch eine Funktion schreiben: In der Funktion, in der die variable drin ist: static int variable;
1 | void SetVar(int var) |
2 | {
|
3 | variable = var; |
4 | }
|
Und dann in der aufrufenden Funktion:
1 | SetVar(Wert); |
"Codefiles" werden überhaupt nicht includiert. Wenn Du es dennoch tust, dann wird der Inhalt des includierten "Codefile" 1:1 in den anderen Code eingefügt und somit zum Bestandteil des betreffenden "Codefiles", wodurch selbstverständlich auch alle Variablendefinitionen eingefügt werden...
Nixwisser wrote: > eine static Variable außerhalb einer Funktion ist ja nur in diesem > Codefile sichtbar. Sie ist innerhalb einer `translation unit' gültig. Das ist genau der Unterschied dabei: eine translation unit umfasst die initiale Quelldatei und alle von ihr mittels #include reingezogenen Dateien.
@all Alles klar, danke. @Johannes In diesem Fall (Testrahmen) muss das sein, da auch die modulinternen Funktionen des inkludierten Files durch den Test aufgerufen werden sollen, die aber nicht im Header-File aufgeführt sind, da sie für das System nicht sichtbar sein sollen.
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.