ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Categories:

13 глава Лафоре, обязательность main, С++

В 13-й главе учебника Лафоре в разделе «Межфайловое взаимодействие» много мелких кусков кода, иллюстрирующих текст учебника, но они не оформлены в какие-то небольшие примеры, как это было в предыдущих главах. Это, мне кажется, недостаток. Возможно, не хватало места, ведь бумажный учебник к тому моменту, видимо, уже получался слишком толстым. Я решил немного покрутить эти куски кода в компиляторе.

Этот код не выполняет какой-либо работы, так как он нужен лишь для иллюстрации правил объявления и определения программных элементов (переменных, функций, классов). Но нужно помнить, что определение функции main обязательно (в многофайловой программе — в одном из файлов), иначе компилятор (у меня — компилятор среды «Visual Studio Community 2017») выдаст ошибку компоновки:
error LNK2001: неразрешенный внешний символ "_main"
которая автоматически влечет за собой другую ошибку компоновки:
fatal error LNK1120: неразрешенных внешних элементов: 1

Одного объявления функции main тоже недостаточно:
int main();
необходимо определение этой функции (наличие тела функции), хотя бы так:
int main() {}

Тут нужно заметить, что инструкция return для функции main по стандарту не является обязательной. Ее отсутствие эквивалентно return 0;. Подробнее об этом можно прочитать тут:
https://en.cppreference.com/w/cpp/language/main_function
Tags: Образование, Программирование
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments