Tot el que heu de saber sobre les funcions en C?



Aquest article us presentarà un concepte senzill però molt fonamental i important que és Funcions en C i el seguirà amb una demostració.

Aquest article us presentarà un mètode senzill però molt fonamental i important concepte que és Funcions en C i seguiu-lo amb una demostració. En aquest article es tractaran les següents indicacions,

Les funcions són blocs bàsics de qualsevol llenguatge de programació. En paraules simples, funcionen en un conjunt d’instruccions, que prenen entrades, realitzen una tasca específica i després retorna la sortida.
La ideologia darrere de la funció de creació és unir un conjunt d’enunciats relacionats que realitzen una tasca específica. Per tant, no cal que escriviu el mateix codi diverses vegades per a diferents conjunts d’entrades. Només heu de trucar a la funció per a diferents entrades, que realitzarà la tasca especificada per a l'entrada donada i retornarà la sortida. Podeu trucar a la funció tantes vegades com vulgueu. En aquest bloc, aprendrem cada matís sobre les funcions en llenguatge de programació C.





Comencem per la qüestió més fonamental.

Què són les funcions en C?

Les funcions són les mateixes en C que en qualsevol altre llenguatge de programació. És un conjunt de codis que s’uneixen per realitzar una tasca específica. El conjunt de codi que s’executarà s’especifica entre claudàtors, és a dir, ‘{}’.



Abans d’aprendre a escriure una funció en C, primer entenem quins són els avantatges.

Avantatges de les funcions en C

Els avantatges de les funcions són habituals en tots els llenguatges de programació.
La idea principal darrere de la funció és reduir la redundància del codi. Suposem que teniu una funcionalitat que s’ha de realitzar diverses vegades en un programa, de manera que, en lloc d’escriure-la diverses vegades, podeu crear una funció per a aquesta tasca i anomenar-la tantes vegades com vulgueu. Un altre avantatge ocult és que, si la lògica de la vostra funcionalitat canvia després, no haureu de continuar i canviar-la en diversos llocs. Només heu de canviar el codi en un lloc (és a dir, a la funció) i es reflectiria a tot el programa.

La modularitat torna a ser un avantatge afegit. Escriure un gran tros de codi que inclou tots i tot, redueix la llegibilitat del codi i dificulta la seva gestió. Podeu dividir el codi en seccions per a funcionalitats individuals mitjançant funcions, que és més fàcil d’entendre i gestionar.



La funció també proporciona abstracció, on podem trucar a una funció i obtenir la sortida sense conèixer la implementació interna.

Continuant amb els tipus de funció C.

Tipus de funció en C

Hi ha dos tipus de funcions:
Funcions de biblioteca
Funcions definides per l'usuari

Les funcions de biblioteca són aquelles que ja estan definides a la biblioteca C, com ara strcat (), printf (), scanf (), etc. Només cal incloure fitxers de capçalera adequats per utilitzar aquestes funcions.
Les funcions definides per l'usuari són aquelles funcions que defineix l'usuari. Aquestes funcions estan dissenyades per reutilitzar el codi i per estalviar temps i espai.

Ara que coneixem els avantatges de crear una funció, entenem com declarar una funció a C.

Declaració i definició de funcions

Declaració de funció:

Sintaxi de la declaració de funció:

return_type nom_funció (data_type arg1, data_type arg2) int add (int x, int y) // declaració de funció

A la Declaració de funcions, especifiquem el nom de la funció, el nombre de paràmetres d’entrada, els seus tipus de dades i el tipus de retorn de la funció. La declaració de funció informa al compilador sobre la llista d'arguments que la funció espera amb els seus tipus de dades i el tipus de retorn de la funció.

A la declaració de funcions, especificar els noms del paràmetre és opcional, però és obligatori especificar-ne els tipus de dades.

int add (int, int) // declaració de funció

La funció especificada anteriorment prendrà dos paràmetres enters.

Funció Definició

 Funcions d
int add (int, int) // declaració de la funció return_type nom_funció (paràmetres) {cos de la funció}

Com es mostra a la imatge anterior, una definició de funció consta de dues parts, és a dir, capçalera de funció i cos de funció

Capçalera de funció: La capçalera de funció és la mateixa que la declaració de funció sense punt i coma. La capçalera de la funció conté el nom de la funció, el paràmetre i el tipus de retorn.

  • Tipus de devolució: El tipus de retorn és el tipus de dades del valor que la funció retornarà. La funció pot retornar o no un valor. Si ho fa, s'hauria d'especificar el tipus de dades del valor de reajustament, en cas contrari, el tipus de retorn haurà de ser nul.

  • Nom de la funció: Aquest és el nom de la funció amb la qual podem anomenar la funció quan i on sigui necessari.

  • Paràmetres: Els paràmetres són els valors d'entrada que es passaran a la funció. Explica els tipus de dades dels arguments, el seu ordre i el nombre d'arguments que es passaran a la funció. Els paràmetres són opcionals. També podeu tenir funcions sense paràmetres.

Funció Cos: El cos de la funció és el conjunt de sentències que realitzen una tasca específica. Defineix què fa la funció.

Exemple:

int afegir (int x, int y) {int suma = x + y retorn (suma)}

Es recomana declarar una funció abans de definir-la i utilitzar-la. A C, podem declarar i definir la funció al mateix lloc.

Exemple:

#include int add (int, int) // declaració de funció // definició de funció int add (int x, int y) // capçalera de funció {// cos de la funció int sum = x + y return (sum)} // Funció principal int main () {int sum = add (23, 31) printf ('% d', sum) return 0}

Com podem veure a l'exemple anterior, anomenem la funció mitjançant la sentència int sum = add (23, 31). El valor retornat de la funció s’emmagatzema en una variable suma.

Abans d’avançar, hi ha un concepte més important que cal entendre sobre el parament. Hi ha dos tipus de paràmetres:

Paràmetre real : Aquells paràmetres que es passen a funcions mentre es criden es coneixen com a paràmetre real. Per exemple, 23 i 31 de l'exemple anterior són els paràmetres reals.

Paràmetre formal : Aquells paràmetres que reben les funcions es coneixen com a paràmetres formals. Per exemple, x i en l'exemple anterior són els paràmetres formals.

Avancem ràpidament i comprenem les diferents maneres de cridar una funció a C.

Crida a una funció

Hi ha dues maneres en què podem anomenar una funció:

què és fava a Java
  • Truca per valor
  • Truca per referència

Truca per valor

En el mètode de crida per valor, el valor del paràmetre real es passa com a argument a la funció. Els valors formals no poden canviar el valor del paràmetre real.

En el mètode call be value, s'assigna una adreça de memòria diferent als paràmetres formals i reals. Només es copia el valor del paràmetre real al paràmetre formal.

Exemple:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nFunció interior, el número és% d', num1)} int main () {int num num = 24 printf ('nAbans de la funció, Número és% d', num ) Call_By_Value (num) printf ('nAfter Function, Number is% dn', num) return 0}

Sortida

A l'exemple anterior, abans de la funció de crida per valor, el valor de num és 24. Llavors, una vegada que cridem la funció i passem el valor i el canviem dins de la funció, es converteix en 42. Quan tornem i imprimim de nou el valor de num en funció principal, passa a ser 24.

Truca per referència

En una trucada per referència, l'adreça de memòria del paràmetre real es passa a la funció com a argument. Aquí, el valor del paràmetre real es pot canviar mitjançant el paràmetre formal.

S’utilitza la mateixa adreça de memòria tant per al paràmetre real com per al formal. Per tant, si es modifica el valor del paràmetre formal, també es reflecteix en el paràmetre real.

A C fem servir indicadors per implementar trucades per referència. Com podeu veure a l'exemple següent, la funció Call_By_Reference espera un punter a un enter.

Ara, aquesta variable num1 emmagatzemarà l'adreça de memòria del paràmetre real. Per tant, per imprimir el valor que s’emmagatzema a l’adreça de memòria assenyalada per num1 hem d’utilitzar un operador de desreferència, és a dir, *. Per tant, el valor de * num1 és 42.

L'operador d'adreces & s'utilitza per obtenir l'adreça d'una variable de qualsevol tipus de dades. Així doncs, a la declaració de trucada de funció 'Call_By_Reference (& num)', es passa l'adreça de num de manera que num pugui modificar-se mitjançant la seva adreça.

Exemple

#include // function definition void Call_By_Reference (int * num1) {* num1 = 42 printf ('nFunció interior, el número és% d', * num1)} // Funció principal int main () {int num num = 24 printf ( 'nAbans de la funció, el número és% d', num) Call_By_Reference (& num) printf ('nAfter Function, Number is% dn', num) return 0}

Sortida

En aquest exemple, el valor de num és inicialment 24, dins de la funció principal. Un cop es passa a la funció Call_By_Reference i el valor és modificat pel paràmetre formal, també es canvia pel paràmetre real. Per això, quan imprimim el valor de num després de la funció, s’està imprimint 42.

Continuant amb els tipus de funció definida per l'usuari a C

Tipus de definits per l'usuari Funció en C.

Hi ha diversos tipus de funcions definides per l'usuari basades en el tipus de retorn i els arguments aprovats.

Continuar sense passar arguments i sense valor de retorn

1. No s’han aprovat arguments i no hi ha valor de retorn

Sintaxi:

declaració de funció:

void function () function call: function () definició de funció: void function () {statement}

Exemple

#include void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('sum% d', sum)} int main () {add () return 0}

Continuar sense passar arguments, sinó un valor de retorn

2 No s'han passat arguments, sinó un valor retornat

Sintaxi:

declaració de funció:

int function () funció crida: function () definició de funció: int function () {sentències retornen a}

Exemple:

#include int add () int add () {int x = 20 int y = 30 int sum = x + y return (sum)} int main () {int sum sum = add () printf ('sum% d', suma) retorn 0}

Continuar amb els arguments passats però sense valor de retorn

3 S'ha passat l'argument, però no hi ha cap valor de retorn

Sintaxi:

declaració de funció:

funció buida (int) funció trucada: funció (a) definició de funció: funció buida (int a) {sentències}

Exemple:

#include void add (int, int) void add (int x, int y) {int sum = x + y return (sum)} int main () {add (23, 31) return 0}

Continuar amb l'argument passat i un valor de retorn

4 S'ha passat l'argument i s'ha retornat un valor

Sintaxi:

declaració de funció:

int function (int) function call: function (a) function definition: int function (int a) {sentències return a}

Exemple

#include int add (int, int) int add (int x, int y) {int sum = x + y return (sum)} int main () {int sum = add (23, 31) printf ('% d') , suma) retorn 0}

Ara vegem ràpidament les funcions de la biblioteca C que són importants per escriure un programa.

Funcions de la biblioteca C

Les funcions de biblioteca són funcions en C que estan predefinides i estan presents per defecte. Només heu d’incloure el fitxer de capçalera específic al programa i podeu utilitzar les funcions definides en aquest fitxer de capçalera. Cada fitxer de capçalera proporciona un tipus específic de funcionalitat. L'extensió del fitxer de capçalera és .h.

Per exemple, per utilitzar les funcions printf / scanf, hem d'incloure stdio.h al nostre programa, que proporciona funcionalitats relatives a l'entrada / sortida estàndard.

A continuació es mostra la llista de fitxers de capçalera.

1stdio.hFitxer de capçalera d’entrada / sortida estàndard
2encunyació.hFitxer de capçalera d’entrada / sortida de la consola
3string.hFuncions de biblioteca relacionades amb cadenes com gets (), put (), etc.
4stdlib.hFuncions de biblioteca generals com malloc (), calloc (), exit (), etc.
5math.hFuncions relacionades amb operacions matemàtiques com sqrt (), pow (), etc.
6temps.hFuncions relacionades amb el temps
7ctype.hFuncions de maneig de personatges
8stdarg.hFuncions d'arguments variables
9senyal.hFuncions de maneig del senyal
10setjmp.hFuncions de salt
11locale.hFuncions locals
12errno.hFuncions de tractament d'errors
13afirmar.hFuncions de diagnòstic

Ara, després de passar per les funcions C anteriors, hauríeu entès tots els matisos de la funció i com implementar-la en llenguatge C. Espero que aquest bloc us sigui informatiu i de valor afegit.

Així hem arribat al final d’aquest article sobre 'Funcions en Do'. Si voleu obtenir més informació, consulteu el , una empresa d'aprenentatge en línia de confiança. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate & Spring

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.