correggimi se sbaglio:
una funzione è un sottoprogramma in C che agisce su valori passati solo "per valore" e restituisce un valore al programma chiamante (attraverso il comando "return") e non può operare con i puntatori alle variabili.
La procedura invece è una funzione particolare che non ha valore di ritorno (manca il "return") e può operare sia con i puntatori che con le varaibili normali (passaggio per "indirizzo" &/o passaggio "per valore"). Giusto?