Función Main
Un programa debe contener una función global llamada main, que es punto de entrada al programa. Debe tener uno de los siguientes formatos:
int main () { cuerpo }
|
(1) | ||||||||
int main (int argc, char *argv[]) { cuerpo }
|
(2) | ||||||||
| /* otra forma definida por la implementación, que tenga ''int'' como tipo de retorno */ | (3) | ||||||||
| argc | - | Valor no negativo que indica el número de argumentos enviados al programa desde el entrono donde se ejecuta. |
| argv | - | Puntero al primer elemento de un array de punteros a cadenas de texto terminadas en nulo que representan los argumentos pasados al programa desde el entorno de ejecución (argv[0] hasta argv[argc-1]). Se garantiza que el valor argv[argc] es un puntero nulo. |
| cuerpo | - | El cuerpo de la función main |
Los nombres argc yargv son arbitrarios, así como la representación de los parámetros: int main(int ac, char** av) también es válido.
Un formato definido por la implementación bastante común de la función main() añade un tercer argumento (además de argc y argv), de tipo char*[], que apunta a un array de punteros a variables de entorno de ejecución.
[editar] Explicación
Se llama a la función main al inicio del programa, después de la inicialización de los objetos no locales con tiempo de almacenamiento estático. Es el punto de entrada designado para un programa que se ejecuta en un entorno alojado (es decir, con un sistema operativo). Los puntos de entrada a los programas independientes (cargadores de arranque, núcleos de sistema operativo, etc.) están definidos por la implementación.
Los parámetros de la función main, con formato de dos parámetros, permiten que se pasen desde el entrono de ejecución un número arbitrario de cadenas de caracteres multibyte (normalmente conocidos como argumentos de línea de comandos), los punteros argv[1] .. argv[argc-1] apuntan al primer carácter de cada una de esas cadenas. argv[0] es el puntero al carácter inicial de una cadena multibyte terminada en nulo que representa el nombre usado para invocar el programa (o una cadena vacía ”” si no está soportado por el entorno de ejecución). Las cadenas de texto se pueden modificar, aunque esas modificaciones no se propagan hacia atrás al entorno de ejecución: se pueden usar, por ejemplo, con std::strtok. El tamaño de un array de punteros argv es al menos argc + 1, y el último elemento, argv[argc], debe ser un puntero nulo.
La función main tiene varias propiedades especiales:
main está reservado para funciones en el espacio de nombres global (aunque se puede usar para nombrar clases, espacios de nombre, enumeraciones, y cualquier entidad fuera del espacio de nombres global, exceptuando que la función main no se puede declarar con enlazado de lenguaje C en cualquier espacio de nombres (desde C++17))main sin encontrar la sentencia return, es como ejecutar return 0;.[editar] Notas
La forma en que los argumentos dados en la línea de comandos del Sistema Operativo se convierten en los arrays multibyte a las que hace referencia argv puede implicar el procesamiento definido por la implementación:
[editar] Ver también
| Documentación de C de función main()
|

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
