static ausserhalb einer Funktion

Gast #3339212
Lesenswert?
• ▲
▼
Ich dachte immer das ein static innerhalb einer funktion bedeutet das 
die variable zwischen den funktionsaufrufen beibehalten wird.

Nur warum wird hier ausserhalb einer funktion static verwendet?

Zudem gibt es das wort static auch vor einer funktion, was soweit ich 
weisz dann aber bedeutet das diese funktion nur innerhalb der .c datei 
sichtbar ist.

Nur verstehe ich dann nicht warum man manch eine .h header Datei in 
verschiedenen .c Dateien einbindet um so gewisse funktionen ja gerade 
ueber verschiedene .c Dateien zu teilen.
1
#include "Compiler.h"
2
...
3
#include "string.h"
4
#include "FSconfig.h"
5

6
DWORD MDD_SDSPI_finalLBA;
7
WORD gMediaSectorSize;
8
BYTE gSDMode;
9
static MEDIA_INFORMATION mediaInformation;
10
static ASYNC_IO ioInfo; //Declared global context, for fast/code efficient access
Persönliche Seite #3339366
Lesenswert?
• ▲
▼
Simon schrieb:
> ok und wie weit ist dann eine Variable ohne static sichtbar?

Mit einer extern - Deklaration kann sie aus jedem anderen C-Modul 
angesprochen werden, da der Linker die Symbolreferenz auflösen kann. 
Wird sie als static definiert, bekommt der Linker keinen Symbolnamen 
angeboten, und ein Zugriff über Modulgrenzen hinweg ist ausgeschlossen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.