Funzioni
Funzioni con e senza Valore di ritorno
Le funzioni in C sono blocchi di codice autonomi che possono essere richiamati da altre parti del programma.
Possono essere utilizzate per organizzare il codice in unità più piccole e modulari.
Definizione di Funzioni
#include <stdio.h>
// Dichiarazione della funzione
int somma(int a, int b);
int main() {
int risultato;
// Chiamata alla funzione
risultato = somma(5, 3);
// Stampa il risultato
printf("La somma è: %d\n", risultato);
return 0;
}
// Definizione della funzione
int somma(int a, int b) {
return a + b;
}
In questo esempio, la funzione `somma` riceve due argomenti interi `a` e `b` e restituisce la loro somma.
Funzioni con Valori di Ritorno
#include <stdio.h>
// Dichiarazione della funzione
int quadrato(int numero);
int main() {
int risultato;
// Chiamata alla funzione e assegnazione del risultato
risultato = quadrato(4);
// Stampa il risultato
printf("Il quadrato è: %d\n", risultato);
return 0;
}
// Definizione della funzione
int quadrato(int numero) {
return numero * numero;
}
In questo esempio, la funzione `quadrato` riceve un argomento intero `numero` e restituisce il quadrato di quel numero.
Funzioni senza Valori di Ritorno
#include <stdio.h>
// Dichiarazione della funzione
void saluta() {
printf("Ciao, mondo!\n");
}
int main() {
// Chiamata alla funzione
saluta();
return 0;
}
In questo esempio, la funzione `saluta` non restituisce alcun valore (`void`), ma esegue comunque un'azione, che è la stampa di un saluto.
Funzioni con Parametri di Puntatore
#include <stdio.h>
// Dichiarazione della funzione
void raddoppia(int* numero);
int main() {
int valore = 5;
// Chiamata alla funzione con un puntatore
raddoppia(&valore);
// Stampa il valore raddoppiato
printf("Il valore raddoppiato è: %d\n", valore);
return 0;
}
// Definizione della funzione
void raddoppia(int* numero) {
*numero *= 2;
}
In questo esempio, la funzione `raddoppia` riceve un puntatore a un intero e raddoppia il valore a cui punta.
Le funzioni in C possono anche restituire tipi di dati complessi, accettare un numero variabile di argomenti e altro ancora.
La loro struttura è flessibile e consente una modularità efficace nel codice.