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++