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