Funkcje statyczne w języku komputerowym C

Funkcje statyczne w języku komputerowym C
„Statyczny” to zarezerwowane słowo w języku komputerowym, c. Jest to specyfikator klasy pamięci, który może być używany z funkcjami. Program C może mieć więcej niż jeden plik. Tylko jeden z plików powinien mieć funkcję C main (). W tym artykule uwzględniono tylko dwa pliki: plik z funkcją c main (), która nazywa się Mainfile.C i drugi plik bez głównej funkcji, która nazywa się innym plikiem.C

Funkcja globalna

Funkcja globalna to funkcja zdefiniowana w pliku C przed funkcją Main (). Nawet funkcja main () jest funkcją globalną, ale funkcja main () nie jest przedmiotem tego artykułu. W języku C funkcje zdefiniowane przez programistę są zwykle funkcjami globalnymi i po prostu określane jako funkcje.

Funkcję globalną można wywołać w dowolnym zakresie w pliku. Aby globalna funkcja była widoczna w innym pliku, jego prototyp musi zostać zadeklarowany w tym innym pliku (patrz poniżej.) Aby zapobiec, aby funkcja zdefiniowana w jednym pliku jest widoczna w innym pliku, poprzedzaj definicję zarezerwowanym słowem, statycznym. Dzięki temu funkcja statyczna byłaby funkcją globalną tylko we własnym pliku i nie będzie widoczna w innym pliku.

Tak więc funkcja globalna zdefiniowana w innym pliku.c można zobaczyć w dowolnym miejscu w innym pliku.C. Aby zobaczyć to w Mainfile.c, jego prototyp musi zostać zadeklarowany w pliku main.c (patrz poniżej.) Jego definicja w innym pliku.C nie powinno być poprzedzone przez „statyczne”. Aby zapobiec jego widzeniu w Mainfile.c, jego definicja w innym pliku.C musi być staticreMoved A Comma, poprzedzając go słowem, statycznym.

Ten artykuł ilustruje funkcję statyczną w języku komputerowym, C zaczyna się od znaczenia prototypu funkcji i jej użycia w programie C dwóch lub więcej plików.

Kompilacja plików, Mainfile.C i inny plik.c, można wykonać za pomocą następujące polecenie terminali Bash:

GCC Mainfile.c INNY PLILE.C -O Temp.exe

Temp.EXE to nazwa uzyskanego pojedynczego pliku wykonującego.

Treść artykułu

- Wprowadzenie - patrz wyżej

- C prototyp funkcji

- Funkcja globalna

- Właściwa funkcja statyczna

- Wniosek

C prototyp funkcji

Rozważ definicję funkcji globalnej:

char* fn1 (char* stri)
powrót stri;

Prototypem tej funkcji jest:

char* fn1 (char* stri);

Jest to podpis funkcji, kończący się w półkolisku.

Teraz niech treść drugiego pliku.c be:

char* fn1 (char* stri)
powrót stri;

Załóżmy, że plik, drugi plik.C ma tylko definicję funkcji globalnej, FN1 (). Teraz pozwól treści pliku, Mainfile.c, bądź:

#włączać
char* fn1 (char* stri);
int main ()

char* str = fn1 („widziany”);
printf („%s \ n”, str);
powrót 0;

Zaczyna się od włączenia nagłówka (biblioteka). Następnie następuje deklaracja prototypowej funkcji, fn () drugiego pliku.

Ten główny plik nie ma definicji żadnej funkcji globalnej innej niż Funkcja Domyślna Main (). W funkcji głównej pierwsza instrukcja wywołuje funkcję fn1 () zdefiniowaną w drugim pliku. To połączenie nie byłoby skuteczne, gdyby prototyp FN1 () nie został zadeklarowany w tym pliku, Mainfile.C.

Jeśli czytelnik zakodował powyższe dwa pliki, może skompilować program do jednego pliku wykonywalnego za pomocą następującego polecenia:

GCC Mainfile.c INNY PLILE.C -O Temp.exe

Naciśnięcie klawisza Enter na końcu linii. Wyjście powinno być „widziane”.

Funkcja globalna

Plik main.Plik C można zmodyfikować w następujący sposób:

#włączać
char* fn1 (char* stri);
char* fn (char* st)
return st;

int main ()

char* str1 = fn1 („widziany”);
printf („%s \ n”, str1);
char* str2 = fn („globalny widoczny w pliku.");
printf („%s \ n”, str2);
powrót 0;

Teraz w pliku są dwie funkcje globalne, mainfile.C. Nazwy funkcji to fn () i main (). dfn () to funkcja globalna. Było to widoczne w lokalnym zakresie funkcji Main (), przez połączenie. W języku C funkcja globalna w globalnym zakresie, taka jak FN (), jest po prostu określana jako funkcja. Również funkcja globalna, fn1 () w pliku, drugi plik.C jest po prostu określany jako funkcja.

Jeśli dwa pliki zostaną ponownie skompilowane w temp.Exe, wtedy Omadel będzie:

widziany

Global widziany w jego pliku.

Uwaga: Definicja funkcji dla fn () można również zobaczyć w drugim pliku, drugi plik.C. Aby to osiągnąć, ma swoją prototypową deklarację w innym pliku.c, jak następuje:

char* fn (char* st);

kończąc na półkolisu. Ta aktywność pozostaje jako ćwiczenie dla czytelnika.

Właściwa funkcja statyczna

Z powyższej dyskusji funkcja można zobaczyć w dowolnym zakresie (w dowolnym miejscu) w jej pliku. Można go również zobaczyć w innym pliku, dla tego samego programu, jeśli jego prototyp zostanie tam ogłoszony. Aby zapobiec dostrzeżeniu definicji pliku w innym pliku, uczyń definicję statyczną, poprzedzając ją zarezerwowanym słowem, statycznym. Nawet jeśli jego prototyp jest zadeklarowany w innym pliku, nadal nie będzie widać w innym pliku. Pliki programu nawet się nie skompilują. Aby to zilustrować, niech treść pliku, drugi plik.c be:

static char* fn1 (char* stri)
powrót stri;

To jest ta sama treść w pliku, drugi plik.c, jak poprzednio, ale z poprzednim zarezerwowanym słowem, statycznym. Zawartość pliku main.plik C, pozostaje taki sam. Jeśli podjęto próbę skompilowania plików programu z poleceniem,

GCC Mainfile.c INNY PLILE.C -O Temp.exe

Kompilator wyda komunikat o błędzie, co oznacza, że ​​program nie skompilował. Nawet jeśli deklaracja prototypu w innym pliku jest również poprzedzona przez statyczną.

Wniosek

Definicja funkcji w języku C jest funkcją globalną. Tę funkcję można wywołać (widoczne) w dowolnym zakresie w pliku. Aby ta funkcja była widoczna w innym pliku, takim jak plik główny, jego prototypowa deklaracja musi być wpisana w tym innym pliku. Aby zapobiec dostrzeżeniu tej funkcji w innym pliku, uczyń jej definicję statyczną poprzez poprzedzenie jej zarezerwowanym słowem, statycznym.