La función main()
¶
El prototipo de la función main()
que usamos en la asignatura es:
int main();
Vemos que la función principal main()
tiene tipo int
. Sin embargo,
en la mayoría de los ejemplos no usamos return
para devolver un entero.
En C++ y sólo para la función
main()
, si no aparece la sentenciareturn
, el compilador añade implícitamentereturn 0;
al final.En el resto de funciones que devuelven un tipo, olvidar el
return
causará un comportamiento indefinido en el programa.
Utilidad del return
de la función main()
¶
Debemos tener en cuenta que, lo mismo que una función puede invocar a otra, un programa puede ser llamado desde otro. De hecho, es lo que hacemos desde un entorno de desarrollo como Code::Blocks invocando al compilador C++.
En ocasiones, el programa que invoca al otro necesita saber si todo ha ido
bien o si, por el contrario, ha ocurrido un problema. Así, vía el valor entero del return
podemos establecer unos códigos que informen al programa invocante.
Usando
return 0;
se asume por convención que el programa ha terminado con éxito.return EXIT_SUCCESS;
oreturn EXIT_FAILURE;
son otras formas de informar de terminación sin/con errores.
Las constantes EXIT_SUCCESS
y EXIT_FAILURE
están definidas
en la biblioteca cstdlib
.
Argumentos de la línea de comandos¶
La función main()
también admite el prototipo:
int main(int ac, char** av);
De esta forma, desde una terminal, podemos invocar a un programa suministrándole unos argumentos de entrada.
No estudiaremos esta alternativa en este curso.
Nota
C++ permite la sobrecarga de funciones, caracterizadas por compartir el identificador, pero con diferentes listas de argumentos.