Różne rodzaje funkcji

Różne rodzaje funkcji
Funkcja jest kodem do wykonania określonej operacji. Ma nazwę do jego identyfikacji. Tutaj nie jesteśmy zainteresowani zdefiniowaniem funkcji. Tutaj omawiamy różne rodzaje funkcji i ich zastosowanie.

Sposoby zdefiniowania funkcji

Istnieją cztery rodzaje programów dostępnych w języku C. Oni są:

1. Nic nie bierze, nic nie zwraca.

2. Bierze coś, nic nie zwraca.

3. Nic nie bierze, coś zwraca.

4. Bierze coś, coś zwraca.

1. Nic nie bierze, nic nie zwraca

Przykład programowania 1

#włączać
void main ()

void add (void);
dodać ();

void add ()

int a, b, c;
printf („Wprowadź dwie liczby”);
Scanf („ %d %d”, i a, i b);
c = a + b;
printf („suma to = %d”, c);

Wyjście

Wyjaśnienie

Ilekroć chcemy skompilować program, kompilator musi znać znaczenie każdego słowa napisanego w programie, co oznacza, że ​​musi zadeklarować każdą funkcję lub zmienną w programie. W przypadku tej funkcji wymagana jest deklaracja. W deklaracji funkcji piszemy 3 rzeczy

  1. Typ powrotu
  2. Nazwa FM
  3. Argument

Ale w przypadku predefiniowanej funkcji deklaracja jest zapisana w pliku nagłówka. Na przykład: CLRSCR () - -> Deklaracja jest wykonywana w pliku, a funkcja jest zdefiniowana w pliku biblioteki. Turbo C ++ 3.0 Kompilator automatycznie deklaruje funkcję zdefiniowaną przez użytkownika. Ale powinniśmy zadeklarować funkcję. Piszemy tylko nazwę i parametr przekazany w argumencie w funkcji wywołania.

2. Bierze coś, nic nie zwraca

Przykład programowania 2

#włączać
void add (int, int); // Deklaracja funkcji na całym świecie
void main ()

int x, y;
void add (int, int); // Deklaracja funkcji lokalnie
printf („Wprowadź 2 liczby”);
Scanf („ %d %d”, i x i y); // faktyczne argumenty
Dodaj (x, y);

void add (int x, int y) // formalne argumenty

int c;
c = x+y;
printf („suma to %d”, c);

Wyjście

Wyjaśnienie

Jeśli chcemy dodać dwie wartości dwóch zmiennych, które są zadeklarowane wewnątrz main () i dodać to w innej nazwie funkcji dodaje (), używamy metody potrzeby zwrotu czegoś. W takim przypadku wartość x i y jest przekazywana do funkcji dodawania, gdy add () wywołuje w głównej funkcji. W tym celu nazywa się to połączeniem wartością.

Ilekroć przekazujemy wartość jako argument do funkcji wywołania, wówczas argumenty te są nazywane faktycznym argumentem.

Oraz w definicji funkcji, wewnątrz nawiasu funkcji, deklarujemy zmienną, która odbędzie wartość zmiennej przekazanej funkcją wywołania, która nazywa się formalnym argumentem.

Nazwa faktycznego argumentu i zmiennej argumentu formalnej może być taka sama, ponieważ kompilator nie myli w tym przypadku; wie, że zmienna x, y, która jest zadeklarowana wewnątrz main () i x, y zadeklarowane w add () są różnymi zmiennymi.

W funkcji wywoływania po prostu przekazujemy wartość zmiennych zadeklarowanych wewnątrz Main (). W tym celu piszemy dodaj (x, y);

3. Nic nie bierze, coś zwraca

Przykład programowania 3

#włączać
int add (void);
void main ()

int s;
s = add ();
printf („suma to %d”, s);

int add ()

int a, b, c;
printf („Wprowadź dwie liczby”);
Scanf („ %d %d”, i a, i b);
c = a+b;
zwrot c;

Wyjście

Wyjaśnienie

Nie bierze nic oznacza, gdy nawet main () wywołuje funkcję do dodania (), oznacza to, że nie wymaga żadnego argumentu. Oznacza, że ​​add () przyjmuje wartość zmiennych od użytkownika i wykonuje dodatek.

Zwrócić coś oznacza add (); Tutaj zwróć dodany wynik do main (), aby użyć zwrócenia słowa kluczowego. Gdy dodaj () zwraca wartość, wartość ta musi być przechowywana w zmiennej (ów) INT, która jest zadeklarowana w Main (). Ponieważ tutaj typ powrotu jest int int. To znaczy s = add () jest zastąpiony przez, s = wartość powrotu.

W tym celu, w definicji funkcji add (), tutaj musimy wspomnieć o typie powrotu add (), tutaj jest int. W przypadku zwrotu zwracamy tylko jedną wartość. Zatem powrót (a, b, c)-> jest źle. Oznacza to, że zwraca tylko wartość C, ponieważ jest zapisywany przynajmniej w nawiasie.

Gdy jakakolwiek funkcja zwraca dowolną wartość, należy rozumieć, że kontrola również powrót do funkcji wywołania.

Jeśli napiszemy jakikolwiek kod po instrukcji zwrotu, ten konkretny kod nie miał żadnego wpływu na program, ponieważ kontrola przesuwa się na funkcję wywołania.

Każda funkcja nie może uzyskać dostępu do zmiennej zadeklarowanej przez drugą funkcję. Ponieważ każda zmienna zadeklarowana w funkcji jest traktowana jako zmienna lokalna.

Tak więc, w Main (), musimy wydrukować wartość S zamiast C, ponieważ C jest zmienną zadeklarowaną wewnątrz Add ().

4. Bierze coś, coś zwraca

Przykład programowania 4

#włączać
int add (int, int);
void main ()

int s, x, y;
printf („Wprowadź 2 liczby”);
Scanf („ %d %d”, i x i y);
s = add (x, y);
printf („suma to %d”, s);

int add (int a, int b)

int c;
c = a+b;
zwrot c;

Wyjście

Wyjaśnienie

Bierze coś, co zwraca program nic nie jest taki sam, jak nic nie bierze czegoś; Jedyną różnicą jest to, że, jak to jest, coś ma charakter, więc wartość dwóch liczb musi zostać przekazana w funkcji wywołania.

Oznacza to, że użytkownik przyjmuje wartość z klawiatury używanej przez Main (). Ta wartość jest przekazywana do add ().

Tak więc dotyczy tego rodzaju wywołania według przykładu. W przeciwnym razie procedura powrotu jest taka sama jak nic nie bierze, zwraca coś procedury.

Wniosek

Ucząc się o różnych rodzajach funkcji w C, doszliśmy do wniosku, że każdy rodzaj funkcji daje ten sam wynik. Ale każdy z nich ma inny mechanizm. Każdy z nich jest potrzebny zgodnie z wymogiem programu. Musimy więc znać każdy rodzaj funkcji.