czwartek, 26 kwietnia 2018

Język C - Funkcje


C - Funkcje

Funkcja to grupa instrukcji, które razem wykonują zadanie. Każdy program C ma co najmniej jedną funkcję, która jest główną main() , a wszystkie najbardziej trywialne programy mogą definiować dodatkowe funkcje.
Możesz podzielić swój kod na oddzielne funkcje. Sposób podziału kodu na różne funkcje zależy od Ciebie, ale logicznie podział jest taki, że każda funkcja wykonuje określone zadanie.
Deklaracja funkcji informuje kompilator o nazwie funkcji, typie zwracanym i parametrach. Definicja funkcji zapewnia rzeczywistą treść funkcji.
Biblioteka standardowa C zawiera liczne wbudowane funkcje, które może wywołać twój program. Na przykład: strcat(), aby połączyć dwa ciągi, memcpy(), aby skopiować jedną lokalizację pamięci do innej lokalizacji i wiele innych funkcji.
Funkcja może być również określana jako metoda lub podprocedura lub procedura itp.

Definiowanie funkcji

Ogólna forma definicji funkcji w języku programowania C wygląda następująco:
return_typ nazwa_funkcji( lista parametrów ) {
   instrukcje
}
Definicja funkcji w programowaniu C składa się z nagłówka funkcji i treści funkcji. Oto wszystkie części funkcji -
·      Typ zwrotu - funkcja może zwracać wartość. Zwracany_typ jest to typ danych wartości, które funkcja zwraca. Niektóre funkcje wykonują żądane operacje bez zwracania wartości. W tym przypadku typ zwrotu to słowo kluczowe void.
·      Nazwa funkcji - Jest to rzeczywista nazwa funkcji. Nazwa funkcji i lista parametrów łącznie stanowią sygnaturę funkcji.
·      Parametry - parametr jest jak symbol zastępczy. Gdy funkcja jest wywoływana, przekazujesz wartość do parametru. Ta wartość jest określana jako faktyczny parametr lub argument. Lista parametrów odnosi się do typu, kolejności i liczby parametrów funkcji. Parametry są opcjonalne; to znaczy, funkcja może nie zawierać żadnych parametrów.
·      Ciało funkcji - treść funkcji zawiera zbiór instrukcji definiujących działanie funkcji.
Przykład
Poniżej podano kod źródłowy dla funkcji o nazwie max(). Ta funkcja pobiera dwa parametry num1 i num2 i zwraca maksymalną wartość:
/* funkcja zwracająca maksimum między dwiema liczbami */
int max(int num1, int num2) {

   /* deklaracja zmiennej lokalnej */
   int wynik;

   if (num1 > num2)
      wynik = num1;
   else
      wynik = num2;

   return wynik;
}

Deklaracje funkcji

Deklaracja funkcji informuje kompilator o nazwie funkcji i sposobie jej wywołania. Rzeczywiste ciało funkcji można zdefiniować osobno.
Deklaracja funkcji składa się z następujących części -
Zwracany_typ nazwa_funkcji( lista parametrów );
Dla wyżej zdefiniowanej funkcji max() deklaracja funkcji jest następująca:
int max(int num1, int num2);
Nazwy parametrów nie są ważne w deklaracji funkcji, wymagany jest tylko ich typ, dlatego poniższa instrukcja jest również prawidłowa:
int max(int, int);
Deklaracja funkcji jest wymagana, gdy definiujesz funkcję w jednym pliku źródłowym i wywołujesz tę funkcję w innym pliku. W takim przypadku powinieneś zadeklarować funkcję na górze pliku wywołującego funkcję.

Wywołanie funkcji

Podczas tworzenia funkcji C podajesz definicję funkcji. Aby użyć funkcji, będziesz musiał wywołać tę funkcję, aby wykonać określone zadanie.
Gdy program wywołuje funkcję, sterowanie programem jest przekazywane do wywoływanej funkcji. Wywoływana funkcja wykonuje zdefiniowane zadanie, a po wykonaniu instrukcji return lub po osiągnięciu końcowego zakończenia funkcji, zwraca kontrolę programu z powrotem do programu głównego.
Aby wywołać funkcję, wystarczy przekazać wymagane parametry wraz z nazwą funkcji, a jeśli funkcja zwraca wartość, można zapisać zwróconą wartość. Na przykład:

#include <stdio.h>

/* deklaracja funkcji */
int max(int num1, int num2);

int main () {

   /* zdefiniowanie lokalnych zmiennych */
   int a = 100;
   int b = 200;
   int ret;

   /* wywołanie funkcji, aby uzyskać maksymalną wartość */
   ret = max(a, b);

   printf( "Maksymalna wartość to : %d\n", ret );

   return 0;
}

/* funkcja zwracająca maksimum między dwiema liczbami */
int max(int num1, int num2) {

   /* zdefiniowanie lokalnych zmiennych */
   int wynik;

   if (num1 > num2)
      wynik = num1;
   else
      wynik = num2;

   return wynik;
}
Zachowaliśmy max() wraz z main() i skompilowaliśmy kod źródłowy. Podczas uruchamiania ostatecznego pliku wykonywalnego wygenerował się następujący wynik:
Maksymalna wartość to : 200

Argumenty funkcji

Jeśli funkcja ma używać argumentów, musi zadeklarować zmienne, które akceptują wartości argumentów. Te zmienne nazywane są formalnymi parametrami funkcji.
Formalne parametry zachowują się jak inne zmienne lokalne w funkcji i są tworzone po wejściu do funkcji i niszczone przy wyjściu.
Podczas wywoływania funkcji istnieją dwa sposoby przekazywania argumentów do funkcji:
L. p.
Typ i opis
1
Wywołanie przez wartości
Ta metoda kopiuje rzeczywistą wartość argumentu do formalnego parametru funkcji. W takim przypadku zmiany wprowadzone w parametrze wewnątrz funkcji nie mają wpływu na argument.
2
Wywołanie przez odniesienie
Ta metoda kopiuje adres argumentu do formalnego parametru. Wewnątrz funkcji adres służy do uzyskiwania dostępu do faktycznego argumentu używanego w wywołaniu. Oznacza to, że zmiany wprowadzone w parametrze wpływają na argument.

Domyślnie C używa funkcji wywołanie przez wartości do przekazywania argumentów. Ogólnie oznacza to, że kod w funkcji nie może zmienić argumentów użytych do wywołania funkcji.

Poprzednia strona                                                          Następna strona

Brak komentarzy:

Prześlij komentarz