¿Qué debería retornar la función main() en C y C++?

Publicado por Camila
hace 10 años

Hola. Quiero saber cómo debería definir la función main en C y C++. int main() o void main(). En caso de que la mejor manera sea int main() ¿debo poner return 0 o return 1?

Desde ya, muchas gracias.

main c++ c
Respuesta de Cristian Olaz
hace 10 años

La función main() siempre debería ser de tipo int. De esta forma, el programa puede indicar si todo terminó con normalidad. En este caso, el programa retorna un cero; caso contrario, generalmente retorna un número distinto. void main() no está aceptado por el estándar de C++ y no deberías usarlo.

Entonces, tu función main podría quedar de cualquiera de las siguientes 3 formas:

// primera forma, la más básica
int main() {
    return 0;
}

// segunda forma
int main(int argc, char* argv[]) {
    return 0;
}

// tercera forma, similar a la anterior
int main(int argc, char** argv) {
    return 0;

Un saludo.

Respuesta de Elias Peraza
hace 9 años

Esto depende de el compilador usado. En compiladores Borland, Turbo C, Turbo C++, se utiliza la funcion main como void, sin embargo, estos compiladores ya no se usan, en gcc, g++ y mingw(adaptacion para Windows), se utiliza cualquiera de los 3 anteriores, sin embargo, creo que lo mas correcto es la segunda forma.