Statische Funktionen in der C -Computersprache C

Statische Funktionen in der C -Computersprache C
"Statisch" ist ein reserviertes Wort in der Computersprache, C. Es ist ein Speicherklassenspezifizierer, der mit Funktionen verwendet werden kann. Ein C -Programm kann mehr als eine Datei haben. Nur eine der Dateien sollte die Funktion c main () haben. In diesem Artikel werden nur zwei Dateien berücksichtigt: die Datei mit der Funktion c main (), die als Mainfile bezeichnet wird.c und die andere Datei ohne die Hauptfunktion, die als andere Datei bezeichnet wird.C

Globale Funktion

Eine globale Funktion ist eine Funktion, die in einer C -Datei vor der Main () -Funktion definiert ist. Sogar die Funktion main () ist eine globale Funktion, aber die main () -Funktion steht in diesem Artikel nicht im Mittelpunkt. In der Sprache C sind Programmierer-definierte Funktionen normalerweise globale Funktionen und werden einfach als Funktionen bezeichnet.

Eine globale Funktion kann in jedem Umfang in ihrer Datei aufgerufen werden. Damit eine globale Funktion in einer anderen Datei zu sehen ist, muss ihr Prototyp in dieser anderen Datei deklariert werden (siehe unten.) Um zu verhindern, dass eine in einer Datei definierte Funktion in einer anderen Datei zu sehen ist. Damit wäre die statische Funktion nur in ihrer eigenen Datei eine globale Funktion und wird nicht in einer anderen Datei angezeigt werden.

Eine in einer anderen Datei definierte globale Funktion.C ist überall in einer anderen Datei zu sehen.C. Damit es in der Mainfile gesehen werden kann.C, sein Prototyp muss in der Mainfile deklariert werden.C (siehe unten.) Seine Definition in einer anderen Datei.C sollte nicht "statisch" vorausgehen. Um zu verhindern, dass es in der Mainfile gesehen wird.C, seine Definition in einer anderen Datei.c muss staticremoved zu einem Komma gemacht werden, indem es mit dem Wort vorgeht, statisch.

Dieser Artikel zeigt die statische Funktion in der Computersprache, C beginnt mit der Bedeutung des Funktionsprototyps und der Verwendung in einem C -Programm von zwei oder mehr Dateien.

Kompilierung der Dateien, Mainfile.C und andere Datei.C kann mit dem folgenden Bash -Terminalbefehl erfolgen:

GCC Mainfile.c Andere Datei.C -o Temp.exe

Temperatur.EXE ist der Name der resultierenden Einzelausführungsdatei.

Artikelinhalt

- Einführung - siehe oben

- C -Funktionsprototyp

- Globale Funktion

- Statische Funktion eigentlich

- Abschluss

C -Funktionsprototyp

Betrachten Sie die globale Funktionsdefinition:

char* fn1 (char* stri)
Rückkehr Stri;

Der Prototyp für diese Funktion ist:

char* fn1 (char* stri);

Es ist die Funktionssignatur, die in Semikolon endet.

Lassen Sie nun den Inhalt der anderen Datei.C sein:

char* fn1 (char* stri)
Rückkehr Stri;

Nehmen Sie an, dass die Datei, andere Datei.c hat nur die Definition der globalen Funktion, fn1 (). Lassen Sie nun den Inhalt der Datei, Mainfile.c, sei:

#enthalten
char* fn1 (char* stri);
int main ()

char* str = fn1 ("gesehen");
printf ("%s \ n", str);
Rückkehr 0;

Es beginnt mit der Aufnahme des Kopfballs (Bibliothek). Darauf folgt die Prototyperklärung der Funktion FN () der anderen Datei.

Diese Hauptdatei hat nicht die Definition einer anderen globalen Funktion als der Standard -Main () -Funktion. In der Hauptfunktion wird in der ersten Anweisung die Funktion fn1 () in der anderen Datei definiert. Dieser Aufruf wäre nicht wirksam, wenn der Prototyp von FN1 () in dieser Datei nicht deklariert würde, Mainfile.C.

Wenn der Leser die beiden oben genannten Dateien codiert hat, kann er das Programm mit dem folgenden Befehl in eine ausführbare Datei zusammenstellen:

GCC Mainfile.c Andere Datei.C -o Temp.exe

Drücken der Eingabetaste am Ende der Linie. Die Ausgabe sollte "gesehen" sein.

Globale Funktion

Die Mainfile.C -Datei kann wie folgt geändert werden:

#enthalten
char* fn1 (char* stri);
char* fn (char* st)
Rückkehr St;

int main ()

char* str1 = fn1 ("gesehen");
printf ("%s \ n", str1);
char* str2 = fn ("global in seiner Datei zu sehen.");
printf ("%s \ n", str2);
Rückkehr 0;

Jetzt gibt es zwei globale Funktionen in der Datei, Mainfile.C. Die Namen der Funktionen sind fn () und main (). DFN () ist eine globale Funktion. Es wurde im Main () -Funktion lokaler Umfang durch einen Anruf gesehen. In der Sprache C wird eine globale Funktion im globalen Bereich wie FN () einfach als Funktion bezeichnet. Auch die globale Funktion fn1 () in der Datei, andere Datei.c wird einfach als Funktion bezeichnet.

Wenn die beiden Dateien in Temperatur umgestaltet werden.exe, dann wird der Outout sein:

gesehen

Global in seiner Datei gesehen.

Hinweis: Die Funktionsdefinition für FN () kann auch in der anderen Datei, otherfile, zu sehen sein.C. Um dies zu erreichen, hat seine Prototyperklärung in einer anderen Datei.C, wie folgt:

char* fn (char* st);

mit einem Semikolon enden. Diese Aktivität bleibt als Übung für den Leser.

Statische Funktion eigentlich

Aus der obigen Diskussion ist in jedem Bereich (überall) in seiner Datei eine Funktion zu sehen. Es ist auch in einer anderen Datei für dasselbe Programm zu sehen, wenn sein Prototyp dort deklariert wird. Um zu verhindern, dass die Definition der Datei in einer anderen Datei zu sehen ist. Auch wenn sein Prototyp in der verschiedenen Datei deklariert wird, wird er in der verschiedenen Datei immer noch nicht angezeigt. Die Programmdateien werden nicht einmal kompiliert. Lassen Sie den Inhalt der Datei, andere Datei, um dies zu veranschaulichen.C sein:

static char* fn1 (char* stri)
Rückkehr Stri;

Dies ist der gleiche Inhalt in der Datei, andere Datei.c, wie zuvor, aber mit dem vorhergehenden reservierten Wort statisch. Der Inhalt der Mainfile.c Datei, bleibt gleich. Wenn versucht wird, die Programmdateien mit dem Befehl zu kompilieren,

GCC Mainfile.c Andere Datei.C -o Temp.exe

Der Compiler würde eine Fehlermeldung ausstellen, was bedeutet, dass das Programm nicht kompiliert wurde. Auch wenn der Prototyperklärung in der verschiedenen Datei die statische Dateien vorangestellt sind, werden die Programmdateien immer noch nicht kompiliert.

Abschluss

Eine Funktionsdefinition in der C -Sprache ist eine globale Funktion. Diese Funktion kann in jedem Bereich in ihrer Datei aufgerufen werden (gesehen). Damit diese Funktion in einer anderen Datei wie der Hauptdatei zu sehen ist. Um zu verhindern, dass diese Funktion in der verschiedenen Datei zu sehen ist.