static Variable inkludieren

Gast #844094
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);
#844098
"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...
Moderator Persönliche Seite #844172
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.
Gast #844180
@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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.