logo

C Funcții

În c, putem împărți un program mare în blocurile de bază cunoscute sub numele de funcție. Funcția conține setul de instrucțiuni de programare cuprinse de {}. O funcție poate fi apelată de mai multe ori pentru a oferi reutilizabilitate și modularitate programului C. Cu alte cuvinte, putem spune că colecția de funcții creează un program. Funcția este cunoscută și ca procedură sau subrutină în alte limbaje de programare.

Avantajul funcțiilor din C

Există următoarele avantaje ale funcțiilor C.

  • Prin utilizarea funcțiilor, putem evita rescrierea aceleiași logici/cod din nou și din nou într-un program.
  • Putem apela funcții C de orice număr de ori într-un program și din orice loc dintr-un program.
  • Putem urmări cu ușurință un program C mare atunci când este împărțit în mai multe funcții.
  • Reutilizarea este principala realizare a funcțiilor C.
  • Cu toate acestea, apelarea funcției este întotdeauna o suprasarcină într-un program C.

Aspecte funcționale

Există trei aspecte ale unei funcții C.

    Declarație de funcțieO funcție trebuie să fie declarată global într-un program c pentru a spune compilatorului despre numele funcției, parametrii funcției și tipul de returnare.
    Apel de funcțieFuncția poate fi apelată de oriunde în program. Lista de parametri nu trebuie să difere în ceea ce privește apelarea și declararea funcției. Trebuie să trecem același număr de funcții precum este declarat în declarația funcției.Definirea functieiConține instrucțiunile reale care urmează să fie executate. Este cel mai important aspect la care vine controlul atunci când funcția este apelată. Aici, trebuie să observăm că o singură valoare poate fi returnată de la funcție.
SNAspecte ale funcției CSintaxă
1Declarație de funcțiereturn_type function_name (lista de argumente);
2Apel de funcțienume_funcție (listă_argumente)
3Definirea functieireturn_type function_name (lista de argumente) {function body;}

Sintaxa de creare a funcției în limbajul c este dată mai jos:

 return_type function_name(data_type parameter...){ //code to be executed } 

Tipuri de funcții

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

    Funcții bibliotecă:sunt funcțiile care sunt declarate în fișierele antet C, cum ar fi scanf(), printf(), gets(), puts(), ceil(), floor() etc.Funcții definite de utilizator:sunt funcțiile care sunt create de programatorul C, astfel încât el/ea să le poată folosi de mai multe ori. Reduce complexitatea unui program mare și optimizează codul.
Funcția C

Valoare returnată

O funcție C poate returna sau nu o valoare din funcție. Dacă nu trebuie să returnați nicio valoare din funcție, utilizați void pentru tipul de returnare.

Să vedem un exemplu simplu de funcție C care nu returnează nicio valoare din funcție.

Exemplu fără valoare returnată:

 void hello(){ printf('hello c'); } 

Dacă doriți să returnați orice valoare din funcție, trebuie să utilizați orice tip de date, cum ar fi int, long, char etc. Tipul de returnare depinde de valoarea care trebuie returnată de la funcție.

cpp este egal

Să vedem un exemplu simplu de funcție C care returnează valoarea int din funcție.

Exemplu cu valoare returnată:

 int get(){ return 10; } 

În exemplul de mai sus, trebuie să returnăm 10 ca valoare, deci tipul returnat este int. Dacă doriți să returnați valoarea în virgulă mobilă (de exemplu, 10.2, 3.1, 54.5 etc.), trebuie să utilizați float ca tip de returnare al metodei.

 float get(){ return 10.2; } 

Acum, trebuie să apelați funcția, pentru a obține valoarea funcției.

Diferite aspecte ale apelării funcțiilor

O funcție poate accepta sau nu orice argument. Poate returna sau nu orice valoare. Pe baza acestor fapte, există patru aspecte diferite ale apelurilor de funcții.

  • funcție fără argumente și fără valoare returnată
  • funcție fără argumente și cu valoare returnată
  • functie cu argumente si fara valoare returnata
  • functie cu argumente si cu valoare returnata

Exemplu pentru Funcție fără argument și valoare returnată

Exemplul 1

tutorial scânteie
 #include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); } 

Ieșire

 Hello Javatpoint 

Exemplul 2

 #include void sum(); void main() { printf('
Going to calculate the sum of two numbers:'); sum(); } void sum() { int a,b; printf('
Enter two numbers'); scanf('%d %d',&a,&b); printf('The sum is %d',a+b); } 

Ieșire

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Exemplu pentru Funcție fără argument și cu valoare returnată

Exemplul 1

 #include int sum(); void main() { int result; printf('
Going to calculate the sum of two numbers:'); result = sum(); printf('%d',result); } int sum() { int a,b; printf('
Enter two numbers'); scanf('%d %d',&a,&b); return a+b; } 

Ieșire

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Exemplul 2: program pentru a calcula aria pătratului

obțineți lungimea matricei în c
 #include int sum(); void main() { printf('Going to calculate the area of the square
'); float area = square(); printf('The area of the square: %f
',area); } int square() { float side; printf('Enter the length of the side in meters: '); scanf('%f',&side); return side * side; } 

Ieșire

 Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000 

Exemplu pentru Funcție cu argument și fără valoare returnată

Exemplul 1

 #include void sum(int, int); void main() { int a,b,result; printf('
Going to calculate the sum of two numbers:'); printf('
Enter two numbers:'); scanf('%d %d',&a,&b); sum(a,b); } void sum(int a, int b) { printf('
The sum is %d',a+b); } 

Ieșire

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Exemplul 2: program pentru calcularea mediei a cinci numere.

 #include void average(int, int, int, int, int); void main() { int a,b,c,d,e; printf('
Going to calculate the average of five numbers:'); printf('
Enter five numbers:'); scanf('%d %d %d %d %d',&a,&b,&c,&d,&e); average(a,b,c,d,e); } void average(int a, int b, int c, int d, int e) { float avg; avg = (a+b+c+d+e)/5; printf('The average of given five numbers : %f',avg); } 

Ieșire

 Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000 

Exemplu pentru Funcție cu argument și cu valoare returnată

Exemplul 1

 #include int sum(int, int); void main() { int a,b,result; printf('
Going to calculate the sum of two numbers:'); printf('
Enter two numbers:'); scanf('%d %d',&a,&b); result = sum(a,b); printf('
The sum is : %d',result); } int sum(int a, int b) { return a+b; } 

Ieșire

 Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30 

Exemplul 2: Program pentru a verifica dacă un număr este par sau impar

 #include int even_odd(int); void main() { int n,flag=0; printf('
Going to check whether a number is even or odd'); printf('
Enter the number: '); scanf('%d',&n); flag = even_odd(n); if(flag == 0) { printf('
The number is odd'); } else { printf('
The number is even'); } } int even_odd(int n) { if(n%2 == 0) { return 1; } else { return 0; } } 

Ieșire

 Going to check whether a number is even or odd Enter the number: 100 The number is even 

C Funcții bibliotecă

Funcțiile bibliotecii sunt funcția încorporată în C care sunt grupate și plasate într-un loc comun numit bibliotecă. Astfel de funcții sunt folosite pentru a efectua unele operații specifice. De exemplu, printf este o funcție de bibliotecă folosită pentru a imprima pe consolă. Funcțiile bibliotecii sunt create de designerii compilatoarelor. Toate funcțiile bibliotecii standard C sunt definite în interiorul diferitelor fișiere de antet salvate cu extensia .h . Trebuie să includem aceste fișiere de antet în programul nostru pentru a folosi funcțiile de bibliotecă definite în astfel de fișiere de antet. De exemplu, pentru a folosi funcțiile de bibliotecă, cum ar fi printf/scanf, trebuie să includem stdio.h în programul nostru, care este un fișier antet care conține toate funcțiile bibliotecii privind intrarea/ieșirea standard.

Lista fișierelor de antet cele mai utilizate este dată în tabelul următor.

SNFișier antetDescriere
1stdio.hAcesta este un fișier antet standard de intrare/ieșire. Conține toate funcțiile bibliotecii privind intrarea/ieșirea standard.
2conium.hAcesta este un fișier antet de intrare/ieșire din consolă.
3sfoară.hConține toate funcțiile de bibliotecă legate de șiruri, cum ar fi gets(), puts(), etc.
4stdlib.hAcest fișier antet conține toate funcțiile generale ale bibliotecii, cum ar fi malloc(), calloc(), exit(), etc.
5matematică.hAcest fișier antet conține toate funcțiile legate de operațiile matematice, cum ar fi sqrt(), pow(), etc.
6timp.hAcest fișier antet conține toate funcțiile legate de timp.
7ctip.hAcest fișier antet conține toate funcțiile de gestionare a caracterelor.
8stdarg.hFuncțiile de argument variabile sunt definite în acest fișier antet.
9semnal.hToate funcțiile de gestionare a semnalului sunt definite în acest fișier antet.
10setjmp.hAcest fișier conține toate funcțiile de salt.
unsprezecelocal.hAcest fișier conține funcții locale.
12errno.hAcest fișier conține funcții de tratare a erorilor.
13afirmă.hAcest fișier conține funcții de diagnosticare.

Detalii suplimentare despre funcțiile C sunt furnizate mai jos:

Există mai multe informații suplimentare legate de funcțiile C. Unele dintre ele sunt după cum urmează:

Programare modulară: Abilitatea de a divide A program uriaș în module mai mici, mai ușor de gestionat este unul dintre principalele beneficii ale utilizării funcțiilor în C. Fiecare funcție poate conține un anumit loc de muncă sau o componentă de funcționalitate, care simplifică și clarifică structura generală a programului. Această strategie modulară îmbunătățește reutilizarea codului și facilitează întreținerea și depanarea.

moștenire java

Reutilizarea codului: Folosind funcții, puteți crea un anumit algoritm sau o bucată de logică o singură dată și să-l utilizați în mod repetat pe tot parcursul programului. Puteți apela funcția oricând trebuie să rulați codul, scutindu-vă de a fi nevoit să îl duplicați în altă parte. Nu numai accelerează dezvoltarea dar asigură și consistență și diminuează posibilitatea de a greși.

Încapsulare și abstracție: Prin ascunderea specificului implementării funcționalității, funcțiile oferă un nivel de abstractizare. Interfața unui prototip de funcție poate fi definită în a fișier antet , în timp ce implementarea efectivă poate fi furnizată într-un fișier sursă diferit. Alte părți ale programului pot utiliza funcția fără a fi nevoie să înțeleagă cum este implementată intern datorită separării interfeței și implementării.

Întreținere ușoară a programului: Un program poate fi înțeles și întreținut mai ușor dacă este împărțit în funcții mai mici. Abilitatea de a atribui o responsabilitate specifică fiecărei funcții face codul mai ușor de citit și facilitează depanarea și depanarea. Vă puteți concentra asupra funcției necesare fără a afecta alte părți ale programului dacă este găsită o eroare sau este necesară o modificare.

Colaborare îmbunătățită: Funcțiile permit dezvoltatorilor care lucrează la același proiect să colaboreze. Programul poate fi împărțit în funcții, astfel încât mai mulți membri ai echipei să poată lucra diferite funcții o dată. Dezvoltatorii își pot integra fără probleme munca în funcții dacă interfețele sunt bine specificate, ceea ce îmbunătățește productivitatea și promovează o dezvoltare eficientă.

Trecerea parametrului: Puteți trimite argumente sau date unei funcții în C, astfel încât să le poată procesa. Funcția poate efectua acțiuni și poate genera rezultate folosind aceste intrări. Puteți crește flexibilitatea și adaptabilitatea funcțiilor prin trecerea unor parametri, ceea ce va crește versatilitatea generală a programului dvs.

Valori returnate: Funcțiile pot trimite valori înapoi la codul care le-a numit, permițând comunicarea rezultatelor execuției funcției. Puteți utiliza valoarea returnată în alte zone ale programului după efectuarea calculelor sau manipularea datelor în cadrul funcției. Valori returnate sunt utile în special atunci când trebuie să calculați un rezultat sau să stabiliți o condiție în funcție de rezultatul funcției.

Concluzie:

În concluzie, funcțiile sunt esențiale pentru programarea C, deoarece dau program organizare, reutilizare și modularitate . Dezvoltatorii pot evita crearea în mod repetat a aceluiași cod prin împărțirea programelor uriașe în funcții mai mici, făcând codul mai eficient și mai ușor de întreținut. Oriunde în program poate apela o funcție, oferind flexibilitate și îmbunătățind fluxul de control.

The declarație, apel , și definiție de funcții sunt doar câteva dintre numeroasele lor caracteristici. Compilatorul este informat de declarația funcției a nume, argumente , și tip de returnare . Este posibil să apelați o funcție cu sau fără parametrii și cu sau fără a valoare returnată . Programatorii construiesc funcții definite de utilizator pentru a îmbunătăți lizibilitatea și optimizarea codului lor, în timp ce funcțiile bibliotecii C cum ar fi printf() și scanf() oferă capabilități prestabilite.

În general, funcțiile sunt blocuri de bază esențiale în programarea C, oferind beneficii, inclusiv organizarea sporită, reutilizarea codului și urmărirea simplă a programelor uriașe. Apelurile de funcții ar putea adăuga unele cheltuieli generale, dar avantajele lor depășesc impactul minim de performanță. Programatorii pot scrie programe C eficiente și modulare prin înțelegerea și utilizarea funcțiilor.