Skip to main content

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:

Firma clásica
int main();
Con argumentos
int main(int argc, char* argv[]);
¿Qué es argc y argv?
  • argc (argument count): cantidad de argumentos recibidos (incluyendo el nombre del ejecutable).
  • argv (argument values): arreglo de punteros a char, 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.

main.cpp
#include <iostream>

int main() {
using std::cout;

cout << "Ready to work.\n"
<< "Job's done!\n"
<< "More work?\n";

return 0;
}
¿Qué acabamos de hacer?

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 a std::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 con return 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

main.cpp
#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;
}
¿Qué acabamos de hacer?
  • argv[0] es el nombre del ejecutable; por eso se empieza desde i = 1.
  • Cada argumento se imprime con un espacio intermedio.