logo

Funkcja zdefiniowana przez użytkownika w C

A funkcja zdefiniowana przez użytkownika to rodzaj funkcji w języku C, która jest definiowana przez samego użytkownika w celu wykonania określonego zadania. Zapewnia możliwość ponownego wykorzystania kodu i modułowość naszego programu. Funkcje zdefiniowane przez użytkownika różnią się od funkcji wbudowanych tym, że ich działanie jest określane przez użytkownika i do ich użycia nie jest wymagany żaden plik nagłówkowy.

W tym artykule dowiemy się o funkcja zdefiniowana przez użytkownika, prototyp funkcji, definicja funkcji, wywołanie funkcji i różne sposoby przekazywania parametrów do funkcji.



Jak korzystać z funkcji zdefiniowanych przez użytkownika w C?

Aby skorzystać z funkcji zdefiniowanej przez użytkownika, musimy najpierw zrozumieć różne części jej składni. Funkcję zdefiniowaną przez użytkownika w C można podzielić na trzy części:

  1. Prototyp funkcji
  2. Definicja funkcji
  3. Wywołanie funkcji

Prototyp funkcji C

Prototyp funkcji jest również nazywany deklaracją funkcji, która określa nazwa funkcji, parametry funkcji, I typ zwrotu . Prototyp funkcji nie zawiera treści funkcji. Zasadniczo służy do informowania kompilatora o istnieniu funkcji zdefiniowanej przez użytkownika, której można użyć w dalszej części programu.

Składnia

return_type function_name  (type1 arg1 , type2 arg2 , ... typeN argN );>

Możemy także pominąć nazwy argumentów w prototypie funkcji. Więc,



return_type function_name  (type1 , type2 , ... typeN);>
Prototyp funkcji

Definicja funkcji C

Po wywołaniu funkcji definicja funkcji zawiera instrukcje, które zostaną wykonane. Wszystkie instrukcje definicji funkcji są zawarte w środku { } aparat ortodontyczny.

Składnia

return_type function_name (type1 arg1 , type2 arg2 .... typeN argN ) { // actual statements to be executed  // return value if any }>

Notatka: Jeśli wywołanie funkcji znajduje się po definicji funkcji, możemy pominąć część prototypową funkcji i bezpośrednio zdefiniować funkcję.

C Wywołanie funkcji

Aby przekazać kontrolę funkcji zdefiniowanej przez użytkownika, musimy ją wywołać. Funkcje wywołuje się za pomocą nazw, po których następuje nawias okrągły. Ich argumenty są podawane w nawiasach.



Składnia

function_name(arg1, arg2, ... argN);>

Przykład funkcji zdefiniowanej przez użytkownika

Poniższy program w C ilustruje sposób wykorzystania w naszym programie funkcji zdefiniowanych przez użytkownika.

C




// C Program to illustrate the use of user-defined function> #include> // Function prototype> int> sum(>int>,>int>);> // Function definition> int> sum(>int> x,>int> y)> {> >int> sum;> >sum = x + y;> >return> x + y;> }> // Driver code> int> main()> {> >int> x = 10, y = 11;> >// Function call> >int> result = sum(x, y);> >printf>(>'Sum of %d and %d = %d '>, x, y, result);> >return> 0;> }>

>

>

Wyjście

Sum of 10 and 11 = 21>

Składniki definicji funkcji

Definicja funkcji składa się z trzech elementów:

  1. Parametry funkcji
  2. Ciało funkcji
  3. Wartość zwracana

1. Parametry funkcji

Parametry funkcji (znane również jako argumenty) to wartości przekazywane do wywoływanej funkcji przez osobę wywołującą. Do funkcji nie możemy przekazać żadnego parametru lub dowolną liczbę parametrów funkcji.

Musimy zdefiniować nazwę funkcji i jej typ w definicji funkcji, a w wywołaniu funkcji możemy przekazać tylko tę samą liczbę i typ parametrów.

Przykład

int foo ( int a, int b) ;>

Tutaj, A I B są parametrami funkcji.

Notatka: Język C udostępnia metodę, za pomocą której możemy przekazywać do funkcji zmienną liczbę argumentów. Takie funkcje nazywane są funkcjami variadic.

Aktorka Rakul Preet Singh

2. Ciało funkcji

Treść funkcji to zbiór instrukcji ujętych w nawiasy klamrowe { }. Są to instrukcje wykonywane po wywołaniu funkcji.

Przykład

int foo (int a, int b) { int sum = a + b;  return sum; }>

Tutaj wypowiedzi pomiędzy { I } jest ciałem funkcji.

3. Wartość zwracana

Wartość zwracana to wartość zwracana przez funkcję wywołującemu. Funkcja może zwrócić tylko jedną wartość i jest opcjonalna. Jeśli nie ma zostać zwrócona żadna wartość, typ zwracany jest zdefiniowany jako void.

The zwróć słowo kluczowe służy do zwracania wartości z funkcji.

Składnia

 return ( expression );>

Przykład

 int  foo (int a, int b) { return a + b; }>

Notatka: Możemy używać wskaźników lub struktur do zwracania wielu wartości z funkcji w C.

Przekazywanie parametrów do funkcji zdefiniowanych przez użytkownika

Możemy przekazywać parametry do funkcji w C za pomocą dwóch metod:

  1. Zadzwoń według wartości
  2. Zadzwoń przez referencje

1. Zadzwoń według wartości

W wywołaniu według wartości kopia wartości jest przekazywana do funkcji, a zmiany wprowadzone w funkcji nie są odzwierciedlane z powrotem w wartościach. Argumenty rzeczywiste i formalne tworzone są w różnych lokalizacjach pamięci.

Przykład

C




// C program to show use of> // call by value> #include> void> swap(>int> a,>int> b)> {> >int> temp = a;> >a = b;> >b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d '>, x,> >y);> >swap(x, y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }>

>

>

Wyjście

Values of x and y before swap are: 10, 20 Values of x and y after swap are: 10, 20>

Notatka: Wartości nie są zmieniane w wywołaniu według wartości, ponieważ nie są przekazywane przez referencję.

2. Zadzwoń przez referencję

W wywołaniu przez referencję adres argumentu jest przekazywany do funkcji, a zmiany wprowadzone w funkcji są odzwierciedlane z powrotem w wartościach. Używamy wskazówki wymaganego typu, aby otrzymać adres w funkcji.

Przykład

C




// C program to implement> // Call by Reference> #include> void> swap(>int>* a,>int>* b)> {> >int> temp = *a;> >*a = *b;> >*b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d '>, x,> >y);> >swap(&x, &y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }>

>

>

Wyjście

Values of x and y before swap are: 10, 20 Values of x and y after swap are: 20, 10>

Aby uzyskać więcej informacji, zapoznaj się z tym artykułem – Różnica między połączeniem według wartości a połączeniem według odniesienia

Zalety funkcji zdefiniowanych przez użytkownika

Zalety korzystania z funkcji w programie są następujące:

  • Można uniknąć powielania kodu w programach, korzystając z funkcji. Kod można napisać szybciej i dzięki temu być bardziej czytelny.
  • Kod można dzielić i podbijać za pomocą funkcji. Proces ten znany jest jako Dziel i rządź. Trudno jest pisać duże ilości kodu w ramach funkcji głównej, a także testować i debugować. Nasze jedno zadanie można podzielić na kilka mniejszych podzadań za pomocą funkcji, zmniejszając w ten sposób ogólną złożoność.
  • Na przykład, używając pow, sqrt itp. w C, nie wiedząc, jak jest to zaimplementowane, można ukryć szczegóły implementacji za pomocą funkcji.
  • Po niewielkich lub żadnych modyfikacjach funkcje opracowane w jednym programie można wykorzystać w innym, skracając czas programowania.