Las palabras parámetro y argumento, aunque de significado similar, tiene distintas connotaciones semánticas: Se denominan parámetros los tipos declarados en el prototipo 4.4.1 (que deben corresponder con los declarados en la definición 4.4.2). Cuando se realiza una llamada a la función, los “valores” pasados se denominan argumentos. A veces se utilizan también las expresiones argumentos formales, para los parámetros y argumentos actuales para los valores pasados.
Parámetros (en prototipo o definición) argumentos formales
Valores pasados (en tiempo de ejecución) argumentos actuales
§2 La sintaxis utilizada para la declaración de la lista de parámetros formales es similar a la utilizada en la declaración de cualquier identificador. A continuación se exponen varios ejemplos:
int func(void) {…} // sin parámetros inf func() {…} // ídem. int func(T1 t1, T2 t2, T3 t3=1) {…} // tres parámetros simples,
// uno con argumento por defecto
int func(T1* ptr1, T2& tref) {…} // los argumentos son un puntero y
// una referencia.
int func(register int i) {…} // Petición de uso de registro para
// argumento (entero)
int func(char* str,…) {…} /* Una cadena y cierto número de otros
argumentos, o un número fijo de argumentos de tipos variables */
§3 Los argumentos son siempre objetos. Sus tipos pueden ser: escalares; estructuras; uniones, o enumeraciones; clases definidas por el usuario; punteros o referencias a estructuras y uniones, o punteros a funciones, a clases o a matrices. El tipo void está permitido como único parámetro formal. Significa que la función no recibe ningún argumento