Описание аргумента
Параметр argc
в main
wmain
функциях — целое число, указывающее, сколько аргументов передаются программе из командной строки. Поскольку имя программы считается аргументом, значение argc
по крайней мере равно единице.
Замечания
Параметр argv
является массивом указателей на строки, завершающиеся значением NULL, который представляет аргументы программы. Каждый элемент массива указывает на строковое представление аргумента, переданного main
(или wmain
). (Сведения о массивах см. в разделе Объявления массива.) Параметр argv
можно объявить в виде массива указателей на тип char
(char *argv[]
) или в виде указателя на тип char
(char **argv
). Для wmain
этого параметр можно объявить как массив указателей на тип (wchar_t *argv[]
), либо как указатель на указатели на тип wchar_t
wchar_t
(wchar_t **argv
).argv
По соглашению — это команда, argv[0]
с помощью которой вызывается программа. Однако можно создать процесс, и CreateProcess
если вы используете оба первых и второго аргументов (lpApplicationName
и lpCommandLine
), argv[0]
может не быть исполняемым именем; используется GetModuleFileName
для получения имени исполняемого файла.
Последний указатель (argv[argc]
) — NULL
это . (Смgetenv
. в справочнике по библиотеке времени выполнения альтернативный метод получения сведений об переменной среды.)
Блок, относящийся только к системам Майкрософт
Параметр envp
является указателем на массив строк, завершающихся значением NULL, которые представляют значения, заданные в переменных среды пользователя. Параметр envp
можно объявить как массив указателей на тип char
(char *envp[]
) или как указатель на указатели на тип char
(char **envp
). wmain
В функции envp
параметр можно объявить как массив указателей wchar_t
на (wchar_t *envp[]
) или в качестве указателя на указатели wchar_t
на (wchar_t **envp
). Конец массива указывается указателем NULL*
. Блок среды, переданный main
или wmain
является "замороженным" копией текущей среды. Если вы позже измените среду с помощью вызова _putenv
или_wputenv
, текущая среда (возвращенная/_wgetenv
getenv
и _environ
_wenviron
переменная) изменится, но блок, на который указываетenvp
, не изменится. Параметр envp
совместим с ANSI/ISO C89 в C, но является расширением Майкрософт в C++.
Завершение блока, относящегося только к системам Майкрософт