Punto de entrada - Comparativa con C++
🚪 Punto de entrada en C++
En C++, el punto de entrada debe ser una función llamada main
, con una de las siguientes firmas válidas:
int main();
int main(int argc, char* argv[]);
argc
y argv
?argc
(argument count): cantidad de argumentos recibidos (incluyendo el nombre del ejecutable).argv
(argument values): arreglo de punteros achar
, donde cada elemento representa un argumento como cadena C (const char*
).
✍️ Ejemplo básico
Inspirado en los peones orcos de Warcraft III, este programa imprime una serie de frases clásicas cuando se interactúa repetidamente con ellos.
#include <iostream>
int main() {
using std::cout;
cout << "Ready to work.\n"
<< "Job's done!\n"
<< "More work?\n";
return 0;
}
Este programa demuestra un ejemplo simple del punto de entrada en C++ usando main()
y std::cout
para imprimir texto en consola.
- Se incluye
<iostream>
, que provee acceso astd::cout
. - Se usa
using std::cout
para evitar repetir el espacio de nombres completo. - Se encadenan múltiples llamadas a
cout
con el operador<<
, lo que resulta más limpio y eficiente para salidas consecutivas. - La función
main
finaliza conreturn 0
, lo cual indica una terminación exitosa del programa (aunque podría omitirse en C++ moderno).
Este ejemplo sirve como punto de partida para explorar cómo imprimir en consola, y cómo estructurar un programa mínimo en C++ moderno.
¿Y std::endl
?
Aunque std::endl
también imprime un salto de línea, tiene un efecto adicional: fuerza el vaciado del búfer de salida (flush
). Esto puede ser útil cuando necesitas que la salida aparezca inmediatamente (por ejemplo, al depurar), pero en la mayoría de los casos es innecesario y reduce el rendimiento.
Usar \n
es más rápido y suficiente para la mayoría de los programas. Por eso, en C++ moderno se prefiere \n
sobre std::endl
, a menos que necesites el flush
explícitamente.
🎒 Con argumentos desde la línea de comandos
#include <iostream>
int main(int argc, char* argv[]) {
std::cout << "Welcome to Fabletown";
for (int i = 1; i < argc; ++i) {
std::cout << " " << argv[i];
}
std::cout << "!\n";
return 0;
}
argv[0]
es el nombre del ejecutable; por eso se empieza desdei = 1
.- Cada argumento se imprime con un espacio intermedio.