Was bedeutet statisch in ANSI-C [duplicate]

Lesezeit: 2 Minuten

Benutzer-Avatar
Sinn

Mögliches Duplikat:

Was bedeutet „statisch“ in einem C-Programm?

Was bedeutet die static Schlüsselwort mean in C ?

Ich verwende ANSI-C. Ich habe in mehreren Codebeispielen gesehen, dass sie die verwenden static Schlüsselwort vor Variablen und vor Funktionen. Was ist der Zweck bei der Verwendung mit einer Variablen? Und was ist der Zweck bei der Verwendung mit einer Funktion?

  • Ich tat, aber schwierig, den genauen Zweck zu verstehen. Ich konnte wenig über die Verwendung mit Variablen verstehen. aber mit Funktion verwenden?

    – Sinn

    2. Januar 2011 um 1:06 Uhr

  • hast du das gefunden: stackoverflow.com/questions/572547/…

    – Mitch Weizen

    2. Januar 2011 um 1:07 Uhr

  • … oder hier: stackoverflow.com/questions/943280/…

    – Mitch Weizen

    2. Januar 2011 um 1:08 Uhr

Benutzer-Avatar
Roux hass

Nur als kurze Antwort, es gibt zwei Verwendungen für die static Schlüsselwort beim Definieren von Variablen:

1- Variablen, die im Dateibereich mit definiert sind static Stichwort, dh definierte externe Funktionen sind nur innerhalb dieser Datei sichtbar. Jeder Versuch, von anderen Dateien darauf zuzugreifen, führt zum Zeitpunkt der Verknüpfung zu einem nicht aufgelösten Symbol.

2- Variablen definiert als static innerhalb eines Blocks innerhalb einer Funktion wird über verschiedene Aufrufe desselben Codeblocks hinweg bestehen bleiben oder “überleben”. Wenn sie initialisiert definiert sind, werden sie nur einmal initialisiert. static Variablen werden normalerweise garantiert auf initialisiert 0 standardmäßig.

  • Zu 1: Statik kann auch auf Funktionen aufgebracht werden, die auch nach außen kaschiert werden.

    – Datenwolf

    2. Januar 2011 um 22:19 Uhr

  • Es wurde in anderen Inkarnationen dieser Frage gesagt, aber für diejenigen, die von Google kommen, gilt streng genommen 1 für Kompilierungseinheiten, nicht für Dateien.

    – Jared

    9. November 2013 um 6:36 Uhr

  • @Roux hass: “Wenn sie definiert initialisiert sind” Was bedeutet das? Wenn sie bei der Definition mit einem Wert ungleich Null initialisiert werden?

    – Montana Burr

    4. Dezember 2015 um 7:20 Uhr

Benutzer-Avatar
Datenwolf

static innerhalb des Hauptteils einer Funktion, dh als Variablenspeicherklassifikator verwendet, bewirkt, dass diese Variable ihren Wert zwischen Funktionsaufrufen beibehält – man könnte durchaus sagen, dass eine statische Variable innerhalb einer Funktion eine globale Variable ist, die nur für diese Funktion sichtbar ist. Diese Verwendung von static macht immer die Funktion, die im Thread verwendet wird unsicher du solltest es vermeiden.

Der andere Anwendungsfall ist die Verwendung static im globalen Geltungsbereich, dh für globale Variablen und Funktionen: Statische Funktionen und globale Variablen sind lokal für die Kompiliereinheit, dh sie erscheinen nicht in der Exporttabelle des kompilierten Binärobjekts. Sie verunreinigen somit nicht den Namensraum. Es ist eine gute Idee, alle Funktionen und globalen Variablen statisch zu deklarieren, damit sie von außerhalb der betreffenden Kompiliereinheit (dh C-Datei) nicht zugänglich sind! Beachten Sie nur, dass statische Variablen nicht in Header-Dateien platziert werden dürfen (außer in sehr seltenen Sonderfällen).

1386270cookie-checkWas bedeutet statisch in ANSI-C [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy