A funkcja w C to zestaw instrukcji, które po wywołaniu wykonują określone zadanie. Jest to podstawowy element programu C, który zapewnia modułowość i możliwość ponownego użycia kodu. Instrukcje programowania funkcji są zawarte w środku { } aparat ortodontyczny , posiadające określone znaczenie i wykonujące określone operacje. W innych językach nazywane są one również podprogramami lub procedurami.
W tym artykule dowiemy się o funkcjach, definicji funkcji. deklaracja, argumenty i parametry, wartości zwracane i wiele innych.
Składnia funkcji w C
Składnię funkcji można podzielić na 3 aspekty:
- Deklaracja funkcji Definicja funkcji Wywołania funkcji
Deklaracje funkcji
W deklaracji funkcji musimy podać nazwę funkcji, typ zwracanej funkcji oraz liczbę i typ jej parametrów. Deklaracja funkcji informuje kompilator, że istnieje funkcja o podanej nazwie zdefiniowana gdzie indziej w programie.
Składnia
return_type name_of_the_function ( parameter_1 , parameter_2 );>
Nazwa parametru nie jest obowiązkowa przy deklarowaniu funkcji. Funkcję możemy również zadeklarować bez podawania nazw zmiennych danych.
Przykład
int sum (int a , int b ); int sum (int , int);>

Deklaracja funkcji
Notatka: Funkcja w C musi zawsze zostać zadeklarowana globalnie przed jej wywołaniem.
Definicja funkcji
Definicja funkcji składa się z rzeczywistych instrukcji, które są wykonywane w momencie wywołania funkcji (tj. gdy sterowanie programem dochodzi do funkcji).
Funkcja C jest ogólnie definiowana i deklarowana w jednym kroku, ponieważ definicja funkcji zawsze zaczyna się od deklaracji funkcji, więc nie musimy jej jawnie deklarować. Poniższy przykład służy zarówno jako definicja funkcji, jak i deklaracja.
return_type function_name (para1_type para1_name, para2_type para2_name ) { // body of the function }> 
Definicja funkcji w C
Wywołanie funkcji
Wywołanie funkcji to instrukcja, która instruuje kompilator, aby wykonał funkcję. W wywołaniu funkcji używamy nazwy funkcji i parametrów.
W poniższym przykładzie wywoływana jest pierwsza funkcja sumująca i do niej przekazywane są liczby 10,30. Po zwróceniu sumy wywołania funkcji a i b sterowanie również powraca do głównej funkcji programu.

Działanie funkcji w C
Notatka: Wywołanie funkcji jest konieczne, aby sterowanie programem dotarło do definicji funkcji. Jeśli nie zostanie wywołana, instrukcje funkcyjne nie zostaną wykonane.
Przykład funkcji C
C
// C program to show function> // call and definition> #include> // Function that takes two parameters> // a and b as inputs and returns> // their sum> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >// Calling sum function and> >// storing its value in add variable> >int> add = sum(10, 30);> > >printf>(>'Sum is: %d'>, add);> >return> 0;> }> |
>
ile lat ma Kylie Jenner
>Wyjście
Sum is: 40>
Jak zauważyliśmy, nie użyliśmy jawnej deklaracji funkcji. Po prostu zdefiniowaliśmy i wywołaliśmy funkcję.
Typ zwrotu funkcji
Typ zwracany przez funkcję informuje, jaki typ wartości jest zwracany po wykonaniu wszystkich funkcji. Jeśli nie chcemy zwracać wartości, możemy użyć typu danych void.
Przykład:
int func(parameter_1,parameter_2);>
Powyższa funkcja zwróci wartość całkowitą po uruchomieniu instrukcji wewnątrz funkcji.
Notatka: Funkcja C może zwrócić tylko jedną wartość. Aby zwrócić wiele wartości, musimy użyć wskaźników lub struktur.
Argumenty funkcji
Argumenty funkcji (znane również jako parametry funkcji) to dane przekazywane do funkcji.
Przykład:
int function_name(int var1, int var2);>
Warunki typów zwrotów i argumentów
W języku programowania C funkcje można wywoływać z argumentami lub bez nich i mogą zwracać wartości. Mogą, ale nie muszą, zwracać wartości do funkcji wywołujących.
- Funkcja bez argumentów i bez wartości zwracanej
- Funkcja bez argumentów i zwracająca wartość
- Funkcja z argumentem i bez wartości zwracanej
- Funkcja z argumentami i wartością zwracaną
Aby dowiedzieć się więcej na temat argumentów funkcji i zwracanych wartości, zapoznaj się z artykułem – Argumenty funkcji i zwracane wartości w C.
Jak działa funkcja C?
Działanie funkcji C można podzielić na następujące kroki wymienione poniżej:
- Deklarowanie funkcji: Deklaracja funkcji to krok, w którym deklarujemy funkcję. Tutaj definiujemy typy zwracane i parametry funkcji.
- Definiowanie funkcji: Wywołanie funkcji: Wywołanie funkcji to krok, w którym wywołujemy funkcję poprzez przekazanie argumentów w funkcji. Wykonanie funkcji: Wykonanie funkcji to krok, w którym możemy uruchomić wszystkie instrukcje wewnątrz funkcji, aby uzyskać końcowy wynik. Zwracanie wartości: Zwracanie wartości to krok, w którym zwracana jest obliczona wartość po wykonaniu funkcji. Wyjście z funkcji jest ostatnim krokiem, w którym cała pamięć przydzielona zmiennym, funkcjom itp. zostaje zniszczona przed przekazaniem pełnej kontroli funkcji głównej.
Rodzaje funkcji
W C istnieją dwa typy funkcji:
- Funkcje biblioteczne Funkcje zdefiniowane przez użytkownika

Rodzaje funkcji w C
1. Funkcja biblioteki
Funkcja biblioteczna jest również nazywana a wbudowana funkcja . Istnieje już pakiet kompilatora zawierający te funkcje, z których każda ma określone znaczenie i jest zawarta w pakiecie. Funkcje wbudowane mają tę zaletę, że można ich bezpośrednio używać bez definiowania, podczas gdy funkcje zdefiniowane przez użytkownika muszą zostać zadeklarowane i zdefiniowane przed użyciem.
Na przykład:
pow(), sqrt(), strcmp(), strcpy() etc.>
Zalety funkcji bibliotecznych C
- Funkcje biblioteki C są łatwe w użyciu i zoptymalizowane pod kątem lepszej wydajności.
- Funkcje biblioteki C oszczędzają dużo czasu, tj. czasu tworzenia funkcji.
- Funkcje biblioteki C są wygodne, ponieważ zawsze działają.
Przykład:
C
// C program to implement> // the above approach> #include> #include> // Driver code> int> main()> {> >double> Number;> >Number = 49;> >// Computing the square root with> >// the help of predefined C> >// library function> >double> squareRoot =>sqrt>(Number);> > >printf>(>'The Square root of %.2lf = %.2lf'>,> >Number, squareRoot);> >return> 0;> }> |
>
>Wyjście
The Square root of 49.00 = 7.00>
2. Funkcja zdefiniowana przez użytkownika
Funkcje tworzone przez programistę nazywane są funkcjami zdefiniowanymi przez użytkownika lub funkcje szyte na miarę . Funkcje zdefiniowane przez użytkownika można udoskonalać i modyfikować w zależności od potrzeb programisty. Ilekroć piszemy funkcję specyficzną dla przypadku i nie zdefiniowaną w żadnym pliku nagłówkowym, musimy zadeklarować i zdefiniować własne funkcje zgodnie ze składnią.
teoria automatów
Zalety funkcji zdefiniowanych przez użytkownika
- Zmienne funkcje można modyfikować w zależności od potrzeb.
- Kod tych funkcji można ponownie wykorzystać w innych programach.
- Funkcje te są łatwe do zrozumienia, debugowania i konserwacji.
Przykład:
C
// C program to show> // user-defined functions> #include> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >int> a = 30, b = 40;> > >// function call> >int> res = sum(a, b);> >printf>(>'Sum is: %d'>, res);> >return> 0;> }> |
>
>Wyjście
Sum is: 70>
Przekazywanie parametrów do funkcji
Dane przekazywane podczas wywoływania funkcji nazywane są parametrami rzeczywistymi. W poniższym programie wartości 10 i 30 są nazywane parametrami rzeczywistymi. Parametry formalne to zmienna i typ danych, jak wspomniano w deklaracji funkcji. W poniższym programie aib są znane jako parametry formalne.

Przekazywanie parametrów do funkcji
Argumenty do funkcji C możemy przekazywać na dwa sposoby:
- Przekaż wartość
- Przejdź przez odniesienie
1. Przekaż wartość
Przekazywanie parametrów w tej metodzie kopiuje wartości z rzeczywistych parametrów do formalnych parametrów funkcji. W rezultacie wszelkie zmiany dokonane wewnątrz funkcji nie mają odzwierciedlenia w parametrach wywołującego.
Przykład:
C
// C program to show use> // of call by value> #include> void> swap(>int> var1,>int> var2)> {> >int> temp = var1;> >var1 = var2;> >var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d
'>,> >var1, var2);> >swap(var1, var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }> |
>
>
dynamiczna tablica JavaWyjście
Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>
2. Przekaż referencje
Rzeczywiste parametry wywołującego i rzeczywiste parametry funkcji odnoszą się do tych samych lokalizacji, więc wszelkie zmiany dokonane wewnątrz funkcji mają swoje odzwierciedlenie w rzeczywistych parametrach wywołującego.
Przykład:
C
// C program to show use of> // call by Reference> #include> void> swap(>int> *var1,>int> *var2)> {> >int> temp = *var1;> >*var1 = *var2;> >*var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d
'>,> >var1, var2);> >swap(&var1, &var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }> |
>
>Wyjście
Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>
Zalety funkcji w C
Funkcje w C to bardzo użyteczna funkcja C z wieloma zaletami, jak wspomniano poniżej:
- Funkcja może ograniczyć powtarzanie tych samych instrukcji w programie.
- Funkcja czyni kod czytelnym, zapewniając modułowość naszemu programowi.
- Nie ma ustalonej liczby funkcji wywołujących, można je wywoływać tyle razy, ile chcesz.
- Funkcja zmniejsza rozmiar programu.
- Po zadeklarowaniu funkcji możesz po prostu jej użyć, nie myśląc o wewnętrznym działaniu funkcji.
Wady funkcji w C
Poniżej przedstawiono główne wady funkcji w języku C:
- Nie można zwrócić wielu wartości.
- Narzut pamięci i czasu wynikający z alokacji ramek stosu i przeniesienia kontroli programu.
Wniosek
W tym artykule omówiliśmy następujące punkty dotyczące funkcji:
redukcja Pythona
- Funkcja to blok kodu, który można wykorzystać w programie dowolną liczbę razy.
- Aby skorzystać z funkcji musimy wywołać funkcję.
- Deklaracja funkcji zawiera nazwę_funkcji, typ zwracany i parametry.
- Definicja funkcji zawiera treść funkcji.
- Funkcja ta może być dwojakiego rodzaju: funkcja zdefiniowana przez użytkownika i funkcja biblioteczna.
- W funkcji możemy według dwóch typów wywoływać według wartości i wywoływać przez referencję zgodnie z przekazanymi wartościami.
Często zadawane pytania dotyczące funkcji w C
Pytanie 1. Zdefiniuj funkcje.
Odpowiedź:
Funkcje to blok kodu wykonywany za każdym razem, gdy zostaną wywołane podczas wykonywania programu.
Pytanie 2. Co to jest deklaracja forward?
Odpowiedź:
Czasami definiujemy funkcję po jej wywołaniu, aby zapewnić lepszą czytelność. W takich przypadkach deklarujemy funkcję przed ich definicją i wywołaniem. Takie oświadczenia nazywane są deklaracjami forwardowymi.
Pytanie 3. Jaka jest różnica między deklaracją funkcji a definicją?
Odpowiedź:
Dane takie jak nazwa funkcji, typ zwracany i parametr są zawarte w deklaracji funkcji, natomiast definicja stanowi treść funkcji. Wszystkie te dane są udostępniane kompilatorowi zgodnie z odpowiadającymi im krokami.
Pytanie 4. Jaka jest różnica między argumentami funkcji a parametrami?
Odpowiedź:
Parametry funkcji to wartości zadeklarowane w deklaracji funkcji. Natomiast argumenty funkcji to wartości przekazywane w funkcji podczas jej wywołania.
Przykład:
int func(int x,int y); func(10,20);>Tutaj int x i int y są parametrami, natomiast 10 i 20 to argumenty przekazywane do funkcji.
Aby dowiedzieć się więcej na ten temat, zapoznaj się z tym artykułem – Różnica między argumentami i parametrami w C.
Pytanie 5. Czy możemy zwrócić wiele wartości z funkcji C?
Odpowiedź:
Nie, generalnie nie jest możliwe zwrócenie wielu wartości z funkcji. Ale albo możemy skorzystać wskazówki do lokalizacji pamięci statycznej lub sterty, aby zwrócić wiele wartości, lub możemy umieścić dane w Struktura a następnie zwróć strukturę.
Aby dowiedzieć się więcej na ten temat, zapoznaj się z tym artykułem – Jak zwrócić wiele wartości z funkcji w C lub C++?
Pytanie 6. Jaki jest parametr faktyczny i formalny?
Odpowiedź:
Parametr formalny: Zmienne zadeklarowane w prototypie funkcji nazywane są argumentami lub parametrami formalnymi.
Rzeczywisty parametr: Wartości przekazywane w funkcji nazywane są rzeczywistymi argumentami lub parametrami.