Función main
y ejecución del programa
Cada programa de C tiene una función principal a la que se debe llamar main
. La función main
sirve como punto de partida para la ejecución del programa. Normalmente, controla la ejecución del programa dirigiendo las llamadas a otras funciones del programa.
A la función main
se le aplican varias restricciones que no se aplican a otras funciones de C. La función main
:
- No se puede declarar como
inline
. - No se puede declarar como
static
. - Su dirección no se puede tomar.
- No se puede llamar desde un programa de un usuario.
Signatura de la función main
La función main
no tiene una declaración porque está integrada en el lenguaje. Si la tuviera, la sintaxis de declaración de main
tendría este aspecto:
int main( void );
int main( int argc, char *argv[ ] );
int main( int argc, char *argv[ ], char *envp[ ] );
La función main
se declara implícitamente mediante una de estas firmas. Puede usar cualquiera de estas firmas al definir la función main
. El compilador de Microsoft también permite a main
tener un tipo de valor devuelto de void
cuando no se devuelve ningún valor. Los parámetros argv
y envp
que wmain
también se pueden definir como de tipo char**
. Para obtener más información acerca de las descripciones de los argumentos, vea Descripción de argumentos.
Comentarios
Las funciones incluidas en el programa de origen realizan una o más tareas concretas. La función main
puede llamar a estas funciones para que realicen sus respectivas tareas. Cuando main
llama a otra función, pasa el control de la ejecución a la función, de modo que la ejecución comienza en la primera instrucción de la función. Una función devuelve el control a main
cuando se ejecuta una instrucción return
o cuando se llega al final de la función.
Puede declarar cualquier función, incluida main
, para que tenga parámetros. El término “parámetro” o “parámetro formal” hace referencia al identificador que recibe un valor pasado a una función. Vea Parámetros para obtener información sobre cómo pasar argumentos a parámetros. Cuando una función llama a otra, la función a la que se llama recibe los valores de sus parámetros de la función que realiza la llamada. Estos valores se denominan argumentos. Puede declarar parámetros formales para que main
pueda recibir argumentos de la línea de comandos mediante el formato que se muestra en la firma de función.
Si desea pasar información a la función main
, los parámetros se denominan tradicionalmente argc
y argv
, aunque el compilador de C no obliga a usar estos nombres. Tradicionalmente, si se pasa un tercer parámetro a main
, ese parámetro se denomina envp
. Los tipos de argc
, argv
y envp
los define el lenguaje C. También puede declarar argv
como char** argv
y envp
como char** envp
. Los ejemplos incluidos más adelante en esta sección muestran cómo utilizar estos tres parámetros para acceder a los argumentos de la línea de comandos. En las siguientes secciones se explican estos parámetros.
Si el código se adhiere al modelo de programación Unicode, puede usar la versión de caracteres anchos específicos de Microsoft de main
, wmain
, como punto de entrada del programa. Para obtener más información sobre esta versión de caracteres anchos de main
, vea Uso de wmain
.
Finalización de main
Un programa deja de ejecutarse normalmente al final de main
, aunque puede finalizar en otros puntos del programa por distintos motivos. Por ejemplo, puede forzar la finalización del programa cuando se detecta alguna condición de error. Para ello, puede usar la función exit
. Para obtener más información sobre exit
y un ejemplo de uso, vea exit
.
Consulte también
Función main
y argumentos de la línea de comandos (C++)
Analizar los argumentos de la línea de comandos de C++