Функция main
и выполнение программ
Каждая программа C имеет основную функцию, которая должна иметь имя main
. Функция main
служит отправной точкой для выполнения программы. Она обычно управляет выполнением программы, вызывая другие ее функции.
К функции применяется несколько ограничений main
, которые не применяются к другим функциям C. Функция main
:
- Не может быть объявлен как
inline
. - Не может быть объявлен как
static
. - Не может быть принято его адрес.
- Не удается вызвать из программы.
Сигнатура main
функции
Функция main
не имеет объявления, так как она встроена в язык. Если это так, синтаксис объявления для main
будет выглядеть следующим образом:
int main( void );
int main( int argc, char *argv[ ] );
int main( int argc, char *argv[ ], char *envp[ ] );
Функция main
объявляется неявно с помощью одной из этих сигнатур. При определении main
функции можно использовать любую из этих сигнатур. Компилятор Майкрософт также позволяет main
иметь тип возвращаемого void
значения, если значение не возвращается. Параметры argv
и envp
можно wmain
также определить как тип char**
. Дополнительные сведения о аргументах см. в разделе Описание аргумента.
Примечания
Функции в исходном коде программы выполняют одну или несколько конкретных задач. Функция main
может вызывать эти функции для выполнения соответствующих задач. При main
вызове другой функции она передает управление выполнением функции, поэтому выполнение начинается с первого оператора в функции. Функция возвращает управление при main
выполнении return
инструкции или достижении конца функции.
Можно объявить любую функцию, включая main
, для получения параметров. Термин "параметр" или "формальный параметр" относится к идентификатору, получающему значение, передаваемое функции. Сведения о передаче аргументов в качестве параметров вы найдете в статье Параметры. Когда одна функция вызывает другую, вызываемая функция получает значения своих параметров от вызывающей функции. Эти значения называются аргументами. Можно объявить формальные параметры в , main
чтобы получать аргументы из командной строки в формате, показанном в сигнатуре функции.
Если вы хотите передать сведения в функцию main
, параметры обычно называются argc
и argv
, хотя компилятор C не требует этих имен. Как правило, если третий параметр передается в main
, этот параметр называется envp
. Типы для argc
, argv
и envp
определяются языком C. Можно также объявить argv
как char** argv
и envp
как char** envp
. В приведенных ниже в данном разделе примерах описывается использование этих трех параметров для доступа к аргументам командной строки. Эти параметры объясняются в следующих разделах.
Если ваш код соответствует модели программирования в Юникоде, в качестве точки входа в программу можно использовать версию расширенных символов main
wmain
майкрософт , . Дополнительные сведения об этой версии с расширенными символами main
см. в разделе Использование wmain
.
main
Прекращения
Программа обычно прекращает выполнение, когда она возвращается из или достигает конца main
, хотя она может завершиться в других точках программы по различным причинам. Например, может потребоваться принудительное завершение программы при обнаружении некоторого состояния ошибки. Для этого можно использовать функцию exit
. Дополнительные сведения и exit
пример использования см. в разделе exit
.
См. также раздел
main
аргументы функции и командной строки (C++)
Анализ аргументов командной строки C
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по