logo

Funkcje C

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

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

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

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.

  1. Funkcja bez argumentów i bez wartości zwracanej
  2. Funkcja bez argumentów i zwracająca wartość
  3. Funkcja z argumentem i bez wartości zwracanej
  4. 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.
  1. Definiowanie funkcji:
  2. 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

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

Przekazywanie parametrów do funkcji

Argumenty do funkcji C możemy przekazywać na dwa sposoby:

  1. Przekaż wartość
  2. 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 Java
Wyjś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:

  1. Funkcja może ograniczyć powtarzanie tych samych instrukcji w programie.
  2. Funkcja czyni kod czytelnym, zapewniając modułowość naszemu programowi.
  3. Nie ma ustalonej liczby funkcji wywołujących, można je wywoływać tyle razy, ile chcesz.
  4. Funkcja zmniejsza rozmiar programu.
  5. 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:

  1. Nie można zwrócić wielu wartości.
  2. 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
  1. Funkcja to blok kodu, który można wykorzystać w programie dowolną liczbę razy.
  2. Aby skorzystać z funkcji musimy wywołać funkcję.
  3. Deklaracja funkcji zawiera nazwę_funkcji, typ zwracany i parametry.
  4. Definicja funkcji zawiera treść funkcji.
  5. Funkcja ta może być dwojakiego rodzaju: funkcja zdefiniowana przez użytkownika i funkcja biblioteczna.
  6. 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.