Quantos argumentos main() tem em C/C++
Pergunta
Que números de argumentos são usados para main
?Quais variantes de main
definição é possível?
Solução
Padrão C++:(Fonte)
O padrão C++ 98 diz na seção 3.6.1.2
Deve ter um tipo de retorno do tipo int, mas, caso contrário, seu tipo é definido pela implementação.Todas as implementações devem permitir as seguintes definições de principal:int main () e int main (int argc, char* argv [])
Normalmente existem 3 conjuntos de parâmetros:
- sem parâmetros /
void
int argc, char ** argv
int argc, char ** argv, char ** env
Onde argc
é o número de linhas de comando, argv
são as linhas de comando reais e env
são as variáveis de ambiente.
Janelas:
Para um aplicativo Windows, você tem um ponto de entrada WinMain com uma assinatura diferente em vez de main.
int WINAPI WinMain(
__in HINSTANCE hInstance,
__in HINSTANCE hPrevInstance,
__in LPSTR lpCmdLine,
__in int nCmdShow
);
OS X:(Fonte)
O Mac OS X e o Darwin possuem um quarto parâmetro contendo informações arbitrárias fornecidas pelo sistema operacional, como o caminho para o binário em execução:
int main(int argc, char **argv, char **envp, char **apple)