Una función solo debe hacer una cosa, y recibe el nombre de lo que devuelve.
Un procedimiento es una función que no devuelve nada, recibe el nombre de lo que hace
int cuadrado(int numero){ //FIRMA DE LA FUNCION
return numero*numero;
}
void saludar_usuario(char msg[]){
printf("%s", msg);
}El ámbito de una función es el espacio de memoria que puede acceder. Cada función tiene su propio ámbito y las variables que se crean ahí se destruyen al salir.
Pasaje
Algunos tipos de datos se pasan por valor: (char, int, float). Otros se pasan por referencia (vectores, matrices)