La sintassi per la definizione di una funzione in linguaggio C è la seguente: TIPO NomeFunzione (lista parametri) { VARIABILI LOCALI ISTRUZIONI . . . RETURN x } Osservazioni: Una funzione, in linguaggio C presenta sempre almeno due elementi obbligatori: il nome (NomeFunzione) che identifica la funzione in modo univoco all'interno di un programma, ed il tipo di dato che restituisce al programma chiamante. Per sua natura, infatti, ogni funzione restituisce sempre un valore che deve essere del tipo corrispondente a quello espresso nella sua definizione. Se non viene espresso alcun tipo di dato di ritorno la maggior parte dei compilatori assume per default che esso sia di tipo int. Il linguaggio C, quindi, non distingue tra procedure e funzioni, essendo una procedura una funzione che non ritorna alcun valore; questo sarà espresso nella sua definizione imponendo che il valore di ritorno sia del tipo void. Si riconosce allora che anche il main stesso è una funzione: in effetti è quella funzione (sempre presente in un qualsiasi programma in C) che viene automaticamente richiamata per prima durante l'esecuzione. Così come nel main, anche nella dichiarazione di una generica funzione è possibile specificare costanti, tipi e variabili “locali” alla funzione. Una funzione restituisce il risultato della sua elaborazione al programma o alla funzione chiamante attraverso l'istruzione return. Il valore o l'espressione che segue tale istruzione deve essere naturalmente dello stesso tipo specificato nella dichiarazione di funzione. Dopo il return non può essere specificata nella funzione nessun'altra istruzione dal momento che il controllo dell'elaborazione ritorna al programma chiamante.