Все программы на языке С состоят из одной или нескольких функций. В любом случае программа должна содержать функцию main(), которая при выполнении программы вызывается первой. В хорошо написанном коде функция main() должна содержать, по существу, схему работы всей программы. Несмотря на то что имя main() не включено в список ключевых слов, по своей природе оно является именно таковым. Функция main(), как правило, вызывается кодом начальной загрузки, который добавляется в программу компилятором для связи программы с операционной системой(UNIX, Windows...). По существу, заголовок функции описывает интерфейс между функцией main() и операционной системой.
Прототип Программы
//test.c
int main(){ // int тип возвращаемого значения, main имя главной функции
return 0; //возвращаемое значение }
Рассмотрим для функции main() этот интерфейс, начиная со слова int. Функция C, вызываемая другой функцией, может возвращать в вызывающую функцию некоторое значение. Это значение называется возвращаемым. В данном случае функция main() может возвращать целое число(целочисленное значение), на что указывает ключевое слово int. После слова main идут пустые круглые скобки. В общем случае, когда функция C++ вызывает другую функцию, она может передавать ей информацию. Эту информацию и описывает часть заголовка функции, заключенная в круглые скобки. В данном случае пустые скобки означают, что функция main() не получает извне никакой информации или, как обычно говорят, - что функция main() не принимает аргументов.
Термин аргумент используется программистами для обозначения единицы информации, передаваемой от одной функции к другой.
И так, заголовок
int main()
означает, что функция main() может возвращать целочисленное значение функции которая ее вызвала, и не принимает от нее никакой информации.
Можно также использовать следующий вариант:
int main(void) //излишне явный стиль
Использование в круглых скобках ключевого слова void - это явный способ указания на то, что функция не принимает аргументов. Пустые круглые скобки в языке C++(но не в С) означают то же самое, что и слово void в круглых скобках( в языке C круглые скобки означают, что программист ничего не сообщает о том, имеются ли у функции аргументы или нет.)
void main()
Это логично, так как возвращаемый тип void означает, что фунуция не возвращает никакого значения. Данный вариант используется достаточно часто; однако в некоторых он не работает, поскольку не определен как обязательный в существующих на сегодняшний день стандартах.
return 0;
неявно подразумевает в конце функции main()(но не другой функции), если он не был задан явно.
В программе test.c функции не случайно присвоено имя main() - это необходимо. Обычно программа на C должна содержать функцию main(). (не Main(), MAIN(), mane()! Помните, что в имени учитывается и регистр клавиатуры, и правописание.) Поскольку программа test.c содержит только одну функцию, эта функция должна называться именно main(). Выполнение программы на C всегда начинается с вызова данной функции. По этому если в программе нет такой функции, то у вас нет и самодостаточной программы; компилятор в этом случае сообщает что функция main() не была определена. Из этого правила имеются исключения. Например, в Windows можно создать модуль, который является динамически подключаемой библиотекой(dll). Этот модуль может использоваться другими программами в среде Windows. Поскольку подобная библиотека не является отдельной программой, она не нуждается в функции main(). Для программ специального назначения, таких, например, как программа для микросхемы контроллера робота, также может не требоваться функция main(). Однако обычная отдельная программа функцию main() должна содержать обязательно.