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
returncausará 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.