Sottoprogrammi

Note

I sottoprogrammi in C sono blocchi di codice riutilizzabili che possono ricevere parametri e restituire valori. Ecco la struttura base:

/* Prototipo della funzione */
tipo_ritorno nome_funzione(tipo_parametro1 param1, tipo_parametro2 param2);

/* Definizione della funzione */
tipo_ritorno nome_funzione(tipo_parametro1 param1, tipo_parametro2 param2) {
   /* corpo della funzione */
   return valore;
}
Example
#include <stdio.h>

/* Prototipo della funzione */
int somma(int a, int b);

int main() {
   int x = 5, y = 7;
   int risultato = somma(x, y);
   printf("La somma è: %d\n", risultato);
   return 0;
}

/* Definizione della funzione */
int somma(int a, int b) {
   return a + b;
}

È possibile accorpare il prototipo e la definizione della funzione con la seguente sintassi:

/* Definizione della funzione */
tipo_ritorno nome_funzione(tipo_parametro1 param1, tipo_parametro2 param2) {
    /* corpo della funzione */
    return valore;
}

Passaggio parametri

Note

Il passaggio dei parametri può avvenire in due modi principali:

  • Passaggio per valore, dove il sottoprogramma modifica solo una copia locale del parametro
  • Passaggio per riferimento, dove il sottoprogramma modifica il valore originale del parametro

Si ricorda che ogni array è passato per riferimento.

Example
/* Passaggio per valore */
void funzionePerValore(int x) {
   x = x + 1;  /* Modifica solo la copia locale
}

/* Passaggio per riferimento (usando puntatori) */
void funzionePerRiferimento(int *x) {
   *x = *x + 1;  /* Modifica il valore originale
}