• Важен ли return в main?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Формально, единственная функция, в которой можно не делать return - это именно main.

    В остальных случаях, если функция что-то возвращает, наличие return обязательно - иначе будет UB.

    Почему для main исключение - никто не знает, потому что параграф в стандарте языка, на который ссылается другой параграф - потерялся:

    I looked it up. I believe this was introduced with C99, and apparently the C99 rationale is defect. It has comments for 5.1.2.2.1 Program startup, then labels the next chapter 5.1.2.3 Program execution. It should have been 5.1.2.2. As a consequence of this, the rationale for Program termination that should have been in the real chapter 5.1.2.3, has gone missing in action. Thus, main allows no return code in C99 and there exists no rational reason why.


    Источник
    Ответ написан
    Комментировать
  • Важен ли return в main?

    @res2001
    Developer, ex-admin
    Если писать код, соответствующий стандарту языка, то корректно, конечно, указывать return.
    В большинстве современных ОС любой запущенный процесс возвращает код возврата. Это требование ОС. Кодом возврата процесса обычно является значение возвращаемое из main.

    Но, если код возврата не нужен, то можно не указывать return и объявлять void main(). Тогда считается, что код возврата из программы нулевой. Обычно это нормально отрабатывает. Но это не стандартная фича и ваша программа может не собраться на какой-то платформе и/или компиляторе.
    Ответ написан
    Комментировать