Compartilhar via


main função e execução do programa

Cada programa C tem uma função principal que precisa ser nomeada como main. A função main serve como o ponto de partida para a execução do programa. Em geral, ela controla a execução direcionando as chamadas para outras funções no programa.

Várias restrições se aplicam à função main que não se aplicam a nenhuma outra função C. A função main:

  • Não pode ser declarada como inline.
  • Não pode ser declarada como static.
  • Não pode ter seu endereço usado.
  • Não pode ser chamada pelo programa.

Assinatura de função main

A função main não tem uma declaração, pois é incorporada à linguagem. Se ela tivesse, a sintaxe da declaração para main seria semelhante a esta:

int main( void );
int main( int argc, char *argv[ ] );
int main( int argc, char *argv[ ], char *envp[ ] );

A função main é declarada implicitamente usando uma dessas assinaturas. Você pode usar qualquer uma dessas assinaturas ao definir a função main. O compilador da Microsoft também permite que main tenha o tipo de retorno void quando nenhum valor é retornado. Os parâmetros argv e envp para wmain também podem ser definidos como o tipo char**. Para obter mais informações sobre os argumentos, confira Descrição do argumento.

Comentários

As funções do programa de origem executam uma ou mais tarefas específicas. A função main pode chamar essas funções para executar as respectivas tarefas. Quando main chama outra função, passa para ela o controle da execução; assim, a execução começa na primeira instrução da função. Uma função devolve o controle a main quando uma instrução return é executada ou quando o término da função é atingido.

Você pode declarar qualquer função, inclusive main, para ter parâmetros. O termo "parâmetro" ou "parâmetro formal" refere-se ao identificador que recebe um valor passado para uma função. Consulte Parâmetros para obter informações sobre como passar argumentos para parâmetros. Quando uma função chama outra, a função chamada recebe valores para os respectivos parâmetros da função que chamou. Esses valores são chamados de argumentos. Você pode declarar parâmetros formais para main, o que permitirá a definição de argumentos da linha de comando usando o formato mostrado na assinatura de função.

Quando informações precisam ser passadas à função main, os parâmetros são tradicionalmente nomeados como argc e argv, embora o compilador C não exija esses nomes. Tradicionalmente, se um terceiro parâmetro é passado para main, ele é nomeado envp. Os tipos de argc, argv e envp são definidos pela linguagem C. Você também pode declarar argv como char** argv e envp como char** envp. Exemplos posteriormente nesta seção mostram como usar esses três parâmetros para acessar argumentos de linha de comando. As seções a seguir explicam esses parâmetros.

Se o código seguir o modelo de programação Unicode, você poderá usar a versão de caractere largo específica da Microsoft main, wmain, como ponto de entrada do programa. Para obter mais informações sobre essa versão de caractere largo do main, confira Como usar wmain.

Terminação de main

Um programa geralmente interrompe a execução quando é retornado ou atinge o final de main, embora possa terminar em outros pontos do programa por vários motivos. Por exemplo, talvez você queira forçar o encerramento do programa quando alguma condição de erro for detectada. Para fazer isso, use a função exit. Para obter mais informações sobre exit e um exemplo de uso, confira exit.

Confira também

Função main e argumentos da linha de comando (C++)
Analisar argumentos da linha de comando C