Сколько аргументов main () имеет в C / C ++ - PullRequest
8 голосов
/ 26 марта 2010

Какие числа аргументов используются для main? Какие варианты определения main возможны?

1 Ответ

24 голосов
/ 26 марта 2010

C ++ Стандарт: ( Источник )

Стандарт C ++ 98 говорит в разделе 3.6.1.2

Должен иметь тип возврата типа int, но в противном случае его тип реализации. Все реализации должны позволять как следующие определения основных: int main () и int main (int argc, char * ARGV [])

Обычно существует 3 набора параметров:

  • без параметров / void
  • int argc, char ** argv
  • int argc, char ** argv, char ** env

Где argc - количество командных строк, argv - фактические командные строки и env - переменные среды.

Windows

Для приложения Windows у вас есть точка входа в WinMain с другой подписью вместо основной.

int WINAPI WinMain(
  __in  HINSTANCE hInstance,
  __in  HINSTANCE hPrevInstance,
  __in  LPSTR lpCmdLine,
  __in  int nCmdShow
);

OS X: ( Источник )

Mac OS X и Darwin имеют четвертый параметр, содержащий произвольную информацию, предоставляемую ОС, например, путь к исполняемому двоичному файлу:

int main(int argc, char **argv, char **envp, char **apple)
...