Nuevo

“void main()” o “main()” C/C++

 “void main()” o “main()” C/C++


La definición

void main() { /* ... */ }
no es y nunca ha sido C ++, ni siquiera ha sido C. Vea el estándar ISO C ++ 3.6.1 [2] o el estándar ISO C 5.1.2.2.1. Una implementación conforme acepta

int main() { /* ... */ }
y
int main(int argc, char* argv[]) { /* ... */ }
Una implementación conforme puede proporcionar más versiones de main (), pero todas deben tener el tipo de retorno int. El int devuelto por main () es una forma para que un programa devuelva un valor al "sistema" que lo invoca. En los sistemas que no proporcionan dicha facilidad, el valor de retorno se ignora, pero eso no hace que "void main ()" sea legal C ++ o legal C. Incluso si su compilador acepta "void main ()", evítelo o arriesgue siendo considerado ignorante por los programadores de C y C ++. 

En C ++, main () no necesita contener una declaración de retorno explícita. En ese caso, el valor devuelto es 0, lo que significa una ejecución exitosa. 
Por ejemplo:

#include <iostream>
int main()
{
    std::cout << "This program returns the integer value 0\n";
}
Tenga en cuenta también que ni ISO C ++ ni C99 le permiten dejar el tipo fuera de una declaración. Es decir, en contraste con C89 y ARM C ++, "int" no se supone donde falta un tipo en una declaración. Por consiguiente:

#include <iostream>
  
main() { /* ... */ }
es un error porque falta el tipo de retorno de main ().
Para resumir arriba, nunca es una buena idea usar "void main ()" o simplemente "main ()" ya que no confirma los estándares. Sin embargo, puede estar permitido por algunos compiladores.

No hay comentarios