logo

Funzioni C

UN funzione in C è un insieme di istruzioni che, quando richiamate, eseguono un compito specifico. È l'elemento base di un programma C che fornisce modularità e riusabilità del codice. All'interno sono racchiuse le istruzioni di programmazione di una funzione { } bretelle , avendo determinati significati ed eseguendo determinate operazioni. Sono anche chiamate subroutine o procedure in altri linguaggi.

In questo articolo impareremo le funzioni, la definizione delle funzioni. dichiarazioni, argomenti e parametri, valori restituiti e molto altro.

Sintassi delle funzioni in C

La sintassi della funzione può essere divisa in 3 aspetti:



    Dichiarazione di funzione Definizione di funzione Chiamate di funzione

Dichiarazioni di funzioni

In una dichiarazione di funzione, dobbiamo fornire il nome della funzione, il suo tipo restituito, il numero e il tipo dei suoi parametri. Una dichiarazione di funzione dice al compilatore che esiste una funzione con il nome specificato definita da qualche altra parte nel programma.

Sintassi

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

Il nome del parametro non è obbligatorio durante la dichiarazione delle funzioni. Possiamo anche dichiarare la funzione senza utilizzare il nome delle variabili di dati.

Esempio

int sum (int a , int b ); int sum (int , int);>
Dichiarazione di funzione

Dichiarazione di funzione

Nota: Una funzione in C deve sempre essere dichiarata globalmente prima di chiamarla.

Definizione della funzione

La definizione della funzione è costituita da vere e proprie istruzioni che vengono eseguite quando viene richiamata la funzione (cioè quando il controllo del programma arriva alla funzione).

Una funzione C viene generalmente definita e dichiarata in un unico passaggio perché la definizione della funzione inizia sempre con la dichiarazione della funzione, quindi non è necessario dichiararla esplicitamente. L'esempio seguente serve sia come definizione di funzione che come dichiarazione.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Definizione di funzione in C

Definizione di funzione in C

Chiamata di funzione

Una chiamata di funzione è un'istruzione che indica al compilatore di eseguire la funzione. Usiamo il nome della funzione e i parametri nella chiamata di funzione.

Nell'esempio seguente, viene chiamata la prima funzione di somma e 10,30 viene passato alla funzione di somma. Dopo la chiamata della funzione viene restituita la somma di a e b e anche il controllo viene restituito alla funzione principale del programma.

Lavoro di funzione in C

Lavoro di funzione in C

Nota: La chiamata alla funzione è necessaria per portare il controllo del programma alla definizione della funzione. Se non vengono chiamate, le istruzioni della funzione non verranno eseguite.

Esempio di funzione 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 è uguale
>

Produzione

Sum is: 40>

Come abbiamo notato, non abbiamo utilizzato la dichiarazione esplicita della funzione. Abbiamo semplicemente definito e chiamato la funzione.

Tipo di ritorno della funzione

Il tipo restituito dalla funzione indica quale tipo di valore viene restituito dopo che tutta la funzione è stata eseguita. Quando non vogliamo restituire un valore, possiamo utilizzare il tipo di dati void.

Esempio:

int func(parameter_1,parameter_2);>

La funzione precedente restituirà un valore intero dopo aver eseguito le istruzioni all'interno della funzione.

Nota: È possibile restituire un solo valore da una funzione C. Per restituire più valori, dobbiamo utilizzare puntatori o strutture.

Argomenti di funzione

Gli argomenti della funzione (noti anche come parametri della funzione) sono i dati passati a una funzione.

Esempio:

int function_name(int var1, int var2);>

Condizioni dei tipi di reso e argomenti

Nel linguaggio di programmazione C, le funzioni possono essere chiamate con o senza argomenti e potrebbero restituire valori. Possono o meno restituire valori alle funzioni chiamanti.

  1. Funzione senza argomenti e senza valore restituito
  2. Funzione senza argomenti e con valore restituito
  3. Funzione con argomento e senza valore restituito
  4. Funzione con argomenti e con valore restituito

Per saperne di più sugli argomenti delle funzioni e sui valori restituiti fare riferimento all'articolo – Argomenti delle funzioni e valori restituiti in C .

Come funziona la funzione C?

Il funzionamento della funzione C può essere suddiviso nei seguenti passaggi come indicato di seguito:

    Dichiarare una funzione: Dichiarare una funzione è un passaggio in cui dichiariamo una funzione. Qui definiamo i tipi restituiti e i parametri della funzione.
  1. Definizione di una funzione:
  2. Chiamare la funzione: chiamare la funzione è un passaggio in cui chiamiamo la funzione passando gli argomenti nella funzione. Esecuzione della funzione: L'esecuzione della funzione è un passaggio in cui possiamo eseguire tutte le istruzioni all'interno della funzione per ottenere il risultato finale. Restituzione di un valore: La restituzione di un valore è il passaggio in cui viene restituito il valore calcolato dopo l'esecuzione della funzione. L'uscita dalla funzione è il passaggio finale in cui tutta la memoria allocata alle variabili, alle funzioni, ecc. viene distrutta prima di dare il pieno controllo alla funzione principale.

Tipi di funzioni

In C esistono due tipi di funzioni:

    Funzioni della libreria Funzioni definite dall'utente
Tipi di funzioni

Tipi di funzioni in C

1. Funzione di libreria

Una funzione di libreria viene anche chiamata a funzione incorporata . Esiste già un pacchetto del compilatore che contiene queste funzioni, ognuna delle quali ha un significato specifico ed è inclusa nel pacchetto. Le funzioni integrate hanno il vantaggio di essere direttamente utilizzabili senza essere definite, mentre le funzioni definite dall'utente devono essere dichiarate e definite prima di essere utilizzate.

Per esempio:

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

Vantaggi delle funzioni della libreria C

  • Le funzioni della libreria C sono facili da usare e ottimizzate per prestazioni migliori.
  • Le funzioni della libreria C fanno risparmiare molto tempo, ad esempio il tempo di sviluppo delle funzioni.
  • Le funzioni della libreria C sono comode poiché funzionano sempre.

Esempio:

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

>

>

Produzione

The Square root of 49.00 = 7.00>

2. Funzione definita dall'utente

Le funzioni create dal programmatore sono note come funzioni definite dall'utente o funzioni su misura . Le funzioni definite dall'utente possono essere migliorate e modificate in base alle necessità del programmatore. Ogni volta che scriviamo una funzione specifica per maiuscole e minuscole e non definita in alcun file di intestazione, dobbiamo dichiarare e definire le nostre funzioni secondo la sintassi.

Vantaggi delle funzioni definite dall'utente

  • Le funzioni variabili possono essere modificate secondo necessità.
  • Il codice di queste funzioni è riutilizzabile in altri programmi.
  • Queste funzioni sono facili da comprendere, eseguire il debug e mantenere.

Esempio:

C

eliminare il file in Java




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

>

>

Produzione

Sum is: 70>

Passaggio di parametri alle funzioni

I dati passati quando viene richiamata la funzione sono noti come parametri effettivi. Nel programma seguente, 10 e 30 sono conosciuti come parametri effettivi. I parametri formali sono la variabile e il tipo di dati menzionati nella dichiarazione della funzione. Nel programma seguente, a e b sono noti come parametri formali.

Passaggio di parametri alle funzioni

Passaggio di parametri alle funzioni

Possiamo passare argomenti alla funzione C in due modi:

  1. Passare per valore
  2. Passa per riferimento

1. Passa per valore

Il passaggio di parametri in questo metodo copia i valori dai parametri effettivi in ​​parametri di funzione formali. Di conseguenza, eventuali modifiche apportate all’interno delle funzioni non si riflettono nei parametri del chiamante.

Esempio:

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

>

>

Lettore multimediale vlc scarica youtube
Produzione

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

2. Passa per riferimento

I parametri effettivi del chiamante e i parametri effettivi della funzione si riferiscono alle stesse posizioni, quindi qualsiasi modifica apportata all'interno della funzione si riflette nei parametri effettivi del chiamante.

Esempio:

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

>

>

Produzione

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

Vantaggi delle funzioni in C

Le funzioni in C sono una funzionalità molto utile di C con molti vantaggi come menzionato di seguito:

  1. La funzione può ridurre la ripetizione delle stesse istruzioni nel programma.
  2. La funzione rende leggibile il codice fornendo modularità al nostro programma.
  3. Non esiste un numero fisso di funzioni di chiamata, puoi chiamarle quante volte vuoi.
  4. La funzione riduce la dimensione del programma.
  5. Una volta dichiarata la funzione, puoi semplicemente usarla senza pensare al funzionamento interno della funzione.

Svantaggi delle funzioni in C

I seguenti sono i principali svantaggi delle funzioni in C:

  1. Impossibile restituire più valori.
  2. Overhead di memoria e tempo dovuti all'allocazione dello stack frame e al trasferimento del controllo del programma.

Conclusione

In questo articolo, abbiamo discusso i seguenti punti sulla funzione menzionata di seguito:

centrare un'immagine in css
  1. La funzione è il blocco di codice che può essere riutilizzato quante volte vogliamo all'interno di un programma.
  2. Per utilizzare una funzione dobbiamo chiamare una funzione.
  3. La dichiarazione di funzione include nome_funzione, tipo restituito e parametri.
  4. La definizione di funzione include il corpo della funzione.
  5. La funzione è di due tipi: funzione definita dall'utente e funzione di libreria.
  6. In funzione, possiamo secondo due tipi chiamare per valore e chiamare per riferimento in base ai valori passati.

Domande frequenti sulle funzioni in C

Q1. Definire le funzioni.

Risposta:

Le funzioni sono il blocco di codice che viene eseguito ogni volta che vengono chiamate durante l'esecuzione di un programma.

Q2. Cos'è una dichiarazione anticipata?

Risposta:

A volte definiamo la funzione dopo la sua chiamata per fornire una migliore leggibilità. In questi casi, dichiariamo la funzione prima della loro definizione e chiamata. Tali dichiarazioni sono chiamate Dichiarazioni Dirette.

Q3. Qual è la differenza tra dichiarazione e definizione di funzione?

Risposta:

I dati come il nome della funzione, il tipo restituito e il parametro sono inclusi nella dichiarazione della funzione mentre la definizione è il corpo della funzione. Tutti questi dati vengono condivisi con il compilatore in base ai passaggi corrispondenti.

Q4. Qual è la differenza tra argomenti e parametri di funzione?

Risposta:

I parametri di funzione sono i valori dichiarati in una dichiarazione di funzione. Mentre gli argomenti della funzione sono i valori che vengono passati nella funzione durante la chiamata alla funzione.

Esempio:

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

Qui int x e int y sono parametri mentre 10 e 20 sono gli argomenti passati alla funzione.

Per saperne di più, fare riferimento a questo articolo – Differenza tra argomenti e parametri in C.

Q5. Possiamo restituire più valori da una funzione C?

Risposta:

No, generalmente non è possibile restituire più valori da una funzione. Ma possiamo usare entrambi puntatori in posizioni di memoria statiche o heap per restituire più valori oppure possiamo inserire dati nel file struttura e quindi restituire la struttura.

Per saperne di più, fai riferimento a questo articolo – Come restituire più valori da una funzione in C o C++?

Q6. Qual è il parametro attuale e formale?

Risposta:

Parametro formale: Le variabili dichiarate nel prototipo della funzione sono note come argomenti o parametri formali.

Parametro effettivo: I valori passati nella funzione sono noti come argomenti o parametri effettivi.