A funció en C és un conjunt d'enunciats que quan es criden realitzen alguna tasca específica. És el bloc bàsic d'un programa C que proporciona modularitat i reutilització del codi. Les instruccions de programació d'una funció s'hi inclouen { } tirants , tenint certs significats i realitzant determinades operacions. També s'anomenen subrutines o procediments en altres idiomes.
En aquest article, aprendrem sobre funcions, definició de funcions. declaració, arguments i paràmetres, valors de retorn i molts més.
Sintaxi de les funcions en C
La sintaxi de la funció es pot dividir en 3 aspectes:
- Declaració de funcions Definició de funcions Crides a funcions
Declaracions de funció
En una declaració de funció, hem de proporcionar el nom de la funció, el seu tipus de retorn i el nombre i tipus dels seus paràmetres. Una declaració de funció indica al compilador que hi ha una funció amb el nom donat definit en algun altre lloc del programa.
Sintaxi
return_type name_of_the_function ( parameter_1 , parameter_2 );>
El nom del paràmetre no és obligatori quan es declaren funcions. També podem declarar la funció sense utilitzar el nom de les variables de dades.
Exemple
int sum (int a , int b ); int sum (int , int);>

Declaració de funció
Nota: Una funció en C sempre s'ha de declarar globalment abans de cridar-la.
Definició de la funció
La definició de la funció consisteix en declaracions reals que s'executen quan es crida la funció (és a dir, quan el control del programa arriba a la funció).
Generalment, una funció C es defineix i es declara en un sol pas perquè la definició de la funció sempre comença amb la declaració de la funció, de manera que no necessitem declarar-la explícitament. L'exemple següent serveix com a definició de funció i declaració.
return_type function_name (para1_type para1_name, para2_type para2_name ) { // body of the function }> 
Definició de funció en C
Crida de funció
Una crida a una funció és una instrucció que indica al compilador que executi la funció. Utilitzem el nom i els paràmetres de la funció a la trucada de funció.
A l'exemple següent, s'anomena la primera funció de suma i 10,30 es passen a la funció de suma. Després de la trucada de funció, es retorna la suma de a i b i el control també es torna a la funció principal del programa.

Funcionament de la funció en C
Nota: La crida de funció és necessària per portar el control del programa a la definició de la funció. Si no es crida, les instruccions de funció no s'executaran.
Exemple de funció 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;> }> |
>
que gran és aquest monitor
>Sortida
Sum is: 40>
Com hem observat, no hem utilitzat la declaració de funció explícita. Simplement hem definit i anomenat la funció.
Tipus de retorn de funció
El tipus de retorn de funció indica quin tipus de valor es retorna després d'executar totes les funcions. Quan no volem retornar un valor, podem utilitzar el tipus de dades void.
Exemple:
int func(parameter_1,parameter_2);>
La funció anterior retornarà un valor enter després d'executar declaracions dins de la funció.
Nota: Només es pot retornar un valor des d'una funció C. Per retornar diversos valors, hem d'utilitzar punters o estructures.
Arguments de funció
Els arguments de funció (també coneguts com a paràmetres de funció) són les dades que es passen a una funció.
Exemple:
int function_name(int var1, int var2);>
Condicions de devolució Tipus i arguments
En el llenguatge de programació C, les funcions es poden cridar amb o sense arguments i poden retornar valors. Poden o no retornar valors a les funcions de crida.
- Funció sense arguments i sense valor de retorn
- Funció sense arguments i amb valor de retorn
- Funció amb argument i sense valor de retorn
- Funció amb arguments i amb valor de retorn
Per obtenir més informació sobre els arguments de funció i els valors de retorn, consulteu l'article - Arguments de funció i valors de retorn en C .
Com funciona la funció C?
El funcionament de la funció C es pot dividir en els passos següents, tal com s'esmenta a continuació:
- Declaració d'una funció: Declarar una funció és un pas en què declarem una funció. Aquí definim els tipus de retorn i els paràmetres de la funció.
- Definició d'una funció: Cridar la funció: cridar la funció és un pas en què cridem la funció passant els arguments de la funció. Execució de la funció: Executar la funció és un pas on podem executar totes les declaracions dins de la funció per obtenir el resultat final. Devolució d'un valor: retornar un valor és el pas on es retorna el valor calculat després de l'execució de la funció. Sortir de la funció és el pas final on tota la memòria assignada a les variables, funcions, etc. es destrueix abans de donar el control total a la funció principal.
Tipus de Funcions
Hi ha dos tipus de funcions en C:
- Funcions de biblioteca Funcions definides per l'usuari

Tipus de funcions en C
1. Funció de biblioteca
Una funció de biblioteca també es coneix com a funció integrada . Ja existeix un paquet compilador que conté aquestes funcions, cadascuna de les quals té un significat específic i s'inclou al paquet. Les funcions integrades tenen l'avantatge de ser utilitzables directament sense estar definides, mentre que les funcions definides per l'usuari s'han de declarar i definir abans de ser utilitzades.
Per exemple:
pow(), sqrt(), strcmp(), strcpy() etc.>
Avantatges de les funcions de biblioteca C
- Les funcions de la biblioteca C són fàcils d'utilitzar i optimitzades per a un millor rendiment.
- Les funcions de la biblioteca C estalvien molt de temps, és a dir, temps de desenvolupament de funcions.
- Les funcions de la biblioteca C són convenients, ja que sempre funcionen.
Exemple:
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;> }> |
>
>Sortida
The Square root of 49.00 = 7.00>
2. Funció definida per l'usuari
Les funcions que crea el programador es coneixen com a funcions definides per l'usuari o funcions a mida . Les funcions definides per l'usuari es poden millorar i modificar segons les necessitats del programador. Sempre que escrivim una funció que és específica per a casos i no està definida en cap fitxer de capçalera, hem de declarar i definir les nostres pròpies funcions segons la sintaxi.
Avantatges de les funcions definides per l'usuari
- Les funcions canviables es poden modificar segons les necessitats.
- El codi d'aquestes funcions és reutilitzable en altres programes.
- Aquestes funcions són fàcils d'entendre, depurar i mantenir.
Exemple:
C
clau ins
// 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;> }> |
>
>Sortida
Sum is: 70>
Passant paràmetres a funcions
Les dades que es transmeten quan s'invoca la funció es coneixen com a paràmetres reals. Al programa següent, 10 i 30 es coneixen com a paràmetres reals. Els paràmetres formals són la variable i el tipus de dades tal com s'esmenta a la declaració de la funció. Al programa següent, a i b es coneixen com a paràmetres formals.

Passant paràmetres a funcions
Podem passar arguments a la funció C de dues maneres:
- Passa per valor
- Passar per referència
1. Passa per valor
El pas de paràmetres en aquest mètode copia els valors dels paràmetres reals als paràmetres de la funció formal. Com a resultat, els canvis fets dins de les funcions no es reflecteixen en els paràmetres de la persona que truca.
Exemple:
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;> }> |
>
>
descarregar vídeo de youtube vlcSortida
Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>
2. Passar per Referència
Els paràmetres reals de la persona que truca i els paràmetres reals de la funció es refereixen a les mateixes ubicacions, de manera que qualsevol canvi fet dins de la funció es reflecteix en els paràmetres reals de la persona que truca.
Exemple:
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;> }> |
>
>Sortida
Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>
Avantatges de les funcions en C
Les funcions en C són una característica molt útil de C amb molts avantatges com s'esmenta a continuació:
- La funció pot reduir la repetició de les mateixes declaracions al programa.
- La funció fa que el codi sigui llegible proporcionant modularitat al nostre programa.
- No hi ha un nombre fix de funcions de trucada, es pot cridar tantes vegades com vulgueu.
- La funció redueix la mida del programa.
- Un cop declarada la funció, podeu utilitzar-la sense pensar en el funcionament intern de la funció.
Inconvenients de les funcions en C
Els següents són els principals desavantatges de les funcions en C:
- No es poden retornar diversos valors.
- Sobrecàrrega de memòria i temps a causa de l'assignació de trames de pila i la transferència del control del programa.
Conclusió
En aquest article, hem comentat els punts següents sobre la funció tal com s'esmenta a continuació:
significat de la comissió de selecció de personal
- La funció és el bloc de codi que es pot reutilitzar tantes vegades com vulguem dins d'un programa.
- Per utilitzar una funció hem d'anomenar una funció.
- La declaració de funció inclou nom_funció, tipus de retorn i paràmetres.
- La definició de la funció inclou el cos de la funció.
- La funció és de dos tipus: funció definida per l'usuari i funció de biblioteca.
- En funció, podem segons dos tipus cridar per valor i cridar per referència segons els valors passats.
Preguntes freqüents sobre les funcions en C
Q1. Definir funcions.
Resposta:
Les funcions són el bloc de codi que s'executa cada vegada que se'ls crida durant l'execució d'un programa.
P2. Què és una declaració anticipada?
Resposta:
De vegades definim la funció després de la seva crida per oferir una millor facilitat. En aquests casos, declarem la funció abans de la seva definició i crida. Aquesta declaració s'anomena Forward Declaration.
P3. Quina diferència hi ha entre la declaració de la funció i la definició?
Resposta:
Les dades com el nom de la funció, el tipus de retorn i el paràmetre s'inclouen a la declaració de la funció, mentre que la definició és el cos de la funció. Totes aquestes dades es comparteixen amb el compilador segons els passos corresponents.
P4. Quina diferència hi ha entre els arguments de la funció i els paràmetres?
Resposta:
Els paràmetres de funció són els valors declarats en una declaració de funció. Mentre que, els arguments de funció són els valors que es passen a la funció durant la trucada de funció.
Exemple:
int func(int x,int y); func(10,20);>Aquí, int x i int y són paràmetres mentre que 10 i 20 són els arguments passats a la funció.
Per saber-ne més, consulteu aquest article - Diferència entre arguments i paràmetres en C .
P5. Podem retornar diversos valors d'una funció C?
Resposta:
No, generalment no és possible retornar diversos valors d'una funció. Però podem utilitzar o bé punters a ubicacions de memòria estàtica o munt per retornar diversos valors o podem posar dades al fitxer estructura i després retornar l'estructura.
Per saber-ne més, consulteu aquest article: Com retornar diversos valors d'una funció en C o C++?
P6. Quin és el paràmetre real i formal?
Resposta:
Paràmetre formal: Les variables declarades al prototip de funció es coneixen com a arguments o paràmetres formals.
Paràmetre real: Els valors que es passen a la funció es coneixen com a arguments o paràmetres reals.