logo

C Funcții

A funcția în C este un set de instrucțiuni care, atunci când sunt apelate, îndeplinesc o anumită sarcină. Este elementul de bază al unui program C care oferă modularitate și reutilizare a codului. Instrucțiunile de programare ale unei funcții sunt incluse în interior { } bretele , având anumite semnificații și efectuând anumite operații. Ele mai sunt numite subrutine sau proceduri în alte limbi.

În acest articol, vom afla despre funcții, definiția funcției. declarație, argumente și parametri, valori returnate și multe altele.

Sintaxa funcțiilor în C

Sintaxa funcției poate fi împărțită în 3 aspecte:



    Declarație de funcție Definiție de funcție Apeluri de funcție

Declarații de funcție

Într-o declarație de funcție, trebuie să furnizăm numele funcției, tipul returnat și numărul și tipul parametrilor acesteia. O declarație de funcție îi spune compilatorului că există o funcție cu numele dat definit în altă parte în program.

Sintaxă

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

Numele parametrului nu este obligatoriu la declararea funcțiilor. De asemenea, putem declara funcția fără a folosi numele variabilelor de date.

Exemplu

int sum (int a , int b ); int sum (int , int);>
Declarație de funcție

Declarație de funcție

Notă: O funcție din C trebuie să fie întotdeauna declarată global înainte de a o apela.

Definiția funcției

Definiția funcției constă din instrucțiuni reale care sunt executate atunci când funcția este apelată (adică atunci când controlul programului vine la funcție).

O funcție C este în general definită și declarată într-un singur pas, deoarece definiția funcției începe întotdeauna cu declarația funcției, așa că nu trebuie să o declarăm în mod explicit. Exemplul de mai jos servește atât ca definiție a funcției, cât și ca declarație.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Definiția funcției în C

Definiția funcției în C

Apel de funcție

Un apel de funcție este o instrucțiune care indică compilatorului să execute funcția. Folosim numele funcției și parametrii în apelul funcției.

În exemplul de mai jos, prima funcție de sumă este apelată și 10,30 sunt transmise funcției de sumă. După ce apelul funcției suma a și b este returnată și controlul este, de asemenea, returnat înapoi la funcția principală a programului.

Funcționarea funcției în C

Funcționarea funcției în C

Notă: Apelul de funcție este necesar pentru a aduce controlul programului la definiția funcției. Dacă nu sunt apelate, instrucțiunile funcției nu vor fi executate.

Exemplu de funcție 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;> }>

>

cpp este egal
>

Ieșire

Sum is: 40>

După cum am observat, nu am folosit declarația explicită a funcției. Pur și simplu am definit și numit funcția.

Tip de returnare a funcției

Tipul de returnare al funcției spune ce tip de valoare este returnat după ce toate funcțiile sunt executate. Când nu dorim să returnăm o valoare, putem folosi tipul de date void.

Exemplu:

int func(parameter_1,parameter_2);>

Funcția de mai sus va returna o valoare întreagă după rularea instrucțiunilor în interiorul funcției.

Notă: O singură valoare poate fi returnată dintr-o funcție C. Pentru a returna mai multe valori, trebuie să folosim pointeri sau structuri.

Argumente ale funcției

Argumentele funcției (cunoscute și ca Parametrii funcției) sunt datele care sunt transmise unei funcții.

Exemplu:

int function_name(int var1, int var2);>

Condiții de returnare Tipuri și argumente

În limbajul de programare C, funcțiile pot fi apelate fie cu sau fără argumente și pot returna valori. Ele pot returna sau nu valori la funcțiile de apelare.

  1. Funcție fără argumente și fără valoare returnată
  2. Funcție fără argumente și cu valoare returnată
  3. Funcție cu argument și fără valoare returnată
  4. Funcție cu argumente și cu valoare returnată

Pentru a afla mai multe despre argumentele funcției și valorile returnate, consultați articolul – Argumentele funcției și valorile returnate în C .

Cum funcționează funcția C?

Funcționarea funcției C poate fi împărțită în următorii pași, după cum se menționează mai jos:

    Declararea unei funcții: Declararea unei funcții este un pas în care declarăm o funcție. Aici definim tipurile de returnare și parametrii funcției.
  1. Definirea unei functii:
  2. Apelarea funcției: Apelarea funcției este un pas în care apelăm funcția prin trecerea argumentelor în funcție. Executarea funcției: Executarea funcției este un pas în care putem rula toate instrucțiunile din interiorul funcției pentru a obține rezultatul final. Returnarea unei valori: Returnarea unei valori este pasul în care este returnată valoarea calculată după execuția funcției. Ieșirea din funcție este pasul final în care toată memoria alocată variabilelor, funcțiilor etc. este distrusă înainte de a da controlul deplin funcției principale.

Tipuri de funcții

Există două tipuri de funcții în C:

    Funcții de bibliotecă Funcții definite de utilizator
Tipuri de funcții

Tipuri de funcții în C

1. Funcția de bibliotecă

O funcție de bibliotecă este denumită și a functie incorporata . Există deja un pachet compilator care conține aceste funcții, fiecare dintre ele având o semnificație specifică și este inclusă în pachet. Funcțiile încorporate au avantajul de a fi direct utilizabile fără a fi definite, în timp ce funcțiile definite de utilizator trebuie să fie declarate și definite înainte de a fi utilizate.

De exemplu:

pow(), sqrt(), strcmp(), strcpy() etc.>

Avantajele funcțiilor bibliotecii C

  • Funcțiile C Library sunt ușor de utilizat și optimizate pentru o performanță mai bună.
  • Funcțiile bibliotecii C economisesc mult timp, adică timp de dezvoltare a funcțiilor.
  • Funcțiile bibliotecii C sunt convenabile, deoarece funcționează întotdeauna.

Exemplu:

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;> }>

>

>

Ieșire

The Square root of 49.00 = 7.00>

2. Funcție definită de utilizator

Funcțiile pe care le creează programatorul sunt cunoscute ca funcții definite de utilizator sau funcții personalizate . Funcțiile definite de utilizator pot fi îmbunătățite și modificate în funcție de nevoia programatorului. Ori de câte ori scriem o funcție care este specifică cazului și nu este definită în niciun fișier antet, trebuie să ne declarăm și să ne definim propriile funcții conform sintaxei.

Avantajele funcțiilor definite de utilizator

  • Funcțiile modificabile pot fi modificate în funcție de necesități.
  • Codul acestor funcții este reutilizabil în alte programe.
  • Aceste funcții sunt ușor de înțeles, de depanat și de întreținut.

Exemplu:

tutorial scânteie

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;> }>

>

>

Ieșire

Sum is: 70>

Transmiterea parametrilor la funcții

Datele transmise atunci când funcția este invocată sunt cunoscute sub numele de parametrii actuali. În programul de mai jos, 10 și 30 sunt cunoscuți ca parametri reali. Parametrii formali sunt variabila și tipul de date așa cum este menționat în declarația funcției. În programul de mai jos, a și b sunt cunoscuți ca parametri formali.

Transmiterea parametrilor la funcții

Transmiterea parametrilor la funcții

Putem transmite argumente funcției C în două moduri:

  1. Treci după valoare
  2. Treceți prin referință

1. Treci după valoare

Parametrul care trece în această metodă copiază valorile din parametrii actuali în parametrii formali ai funcției. Ca urmare, orice modificări efectuate în interiorul funcțiilor nu se reflectă în parametrii apelantului.

Exemplu:

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;> }>

>

>

obțineți lungimea matricei în c
Ieșire

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>

2. Treceți prin referință

Parametrii actuali ai apelantului și parametrii actuali ai funcției se referă la aceleași locații, astfel încât orice modificări efectuate în interiorul funcției sunt reflectate în parametrii actuali ai apelantului.

Exemplu:

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;> }>

>

>

Ieșire

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>

Avantajele funcțiilor din C

Funcțiile în C este o caracteristică extrem de utilă a lui C, cu multe avantaje, așa cum este menționat mai jos:

  1. Funcția poate reduce repetarea acelorași instrucțiuni în program.
  2. Funcția face codul ușor de citit, oferind modularitate programului nostru.
  3. Nu există un număr fix de funcții de apelare, acesta poate fi apelat de câte ori doriți.
  4. Funcția reduce dimensiunea programului.
  5. Odată ce funcția este declarată, o puteți folosi fără să vă gândiți la funcționarea internă a funcției.

Dezavantajele funcțiilor din C

Următoarele sunt dezavantajele majore ale funcțiilor din C:

  1. Nu se pot returna mai multe valori.
  2. Supraîncărcarea memoriei și a timpului datorită alocării cadrelor stivei și transferului de control al programului.

Concluzie

În acest articol, am discutat următoarele puncte despre funcție, așa cum este menționat mai jos:

moștenire java
  1. Funcția este blocul de cod care poate fi reutilizat de câte ori vrem în interiorul unui program.
  2. Pentru a folosi o funcție trebuie să apelăm o funcție.
  3. Declarația funcției include funcția_name, tipul returnat și parametrii.
  4. Definiția funcției include corpul funcției.
  5. Funcția este de două tipuri: funcție definită de utilizator și funcție de bibliotecă.
  6. În funcție, putem în funcție de două tipuri să apelăm după valoare și să apelăm prin referință în funcție de valorile transmise.

Întrebări frecvente despre funcțiile din C

Î1. Definiți funcții.

Răspuns:

Funcțiile sunt blocul de cod care este executat de fiecare dată când sunt apelate în timpul execuției unui program.

Q2. Ce este o declarație anticipată?

Răspuns:

Uneori definim funcția după apelul ei pentru a oferi o mai bună ușurință. În astfel de cazuri, declarăm funcția înainte de definirea și apelul lor. O astfel de declarație se numește Forward Declaration.

Q3. Care este diferența dintre declararea și definirea funcției?

Răspuns:

Datele precum numele funcției, tipul de returnare și parametrul sunt incluse în declarația funcției, în timp ce definiția este corpul funcției. Toate aceste date sunt partajate cu compilatorul în conformitate cu pașii corespunzători.

Î4. Care este diferența dintre argumentele funcției și parametrii?

Răspuns:

Parametrii funcției sunt valorile declarate într-o declarație de funcție. În timp ce, argumentele funcției sunt valorile care sunt transmise în funcție în timpul apelului funcției.

Exemplu:

 int func(int x,int y); func(10,20);>

Aici, int x și int y sunt parametrii, în timp ce, 10 și 20 sunt argumentele transmise funcției.

Pentru a afla mai multe despre el, consultați acest articol – Diferența dintre argumente și parametri în C .

Î5. Putem returna mai multe valori dintr-o funcție C?

Răspuns:

Nu, în general nu este posibil să returnați mai multe valori dintr-o funcție. Dar putem folosi fie indicatoare la locații de memorie statice sau heap pentru a returna mai multe valori sau putem pune date în structura și apoi returnați structura.

Pentru a afla mai multe despre aceasta, consultați acest articol - Cum să returnați mai multe valori dintr-o funcție în C sau C++?

Î6. Care este parametrul real și formal?

Răspuns:

Parametru formal: Variabilele declarate în prototipul funcției sunt cunoscute ca argumente sau parametri formali.

Parametru real: Valorile care sunt transmise în funcție sunt cunoscute ca argumente sau parametri actuali.