Рубрики

Можно ли писать «void main ()» или «main ()» в C / C ++?

Определение

void main() { / * ... * / }

не является и никогда не был C ++, и даже не был C. См. Стандарт ISO C ++ 3.6.1 [2] или стандарт ISO C 5.1.2.2.1. Соответствующая реализация принимает

int main() { / * ... * / }

и

int main(int argc, char* argv[]) { / * ... * / }

Соответствующая реализация может предоставлять больше версий main (), но все они должны иметь возвращаемый тип int. Int, возвращаемый функцией main (), — это способ для программы вернуть значение в «систему», которая ее вызывает. В системах, которые не предоставляют такую возможность, возвращаемое значение игнорируется, но это не делает «void main ()» легальным C ++ или легальным C. Даже если ваш компилятор принимает «void main ()», избегайте его или рискуйте считаются невежественными программистами C и C ++.
В C ++ main () не обязательно должен содержать явный оператор возврата. В этом случае возвращаемое значение равно 0, что означает успешное выполнение.
Например:

#include <iostream>

int main()

{

    std::cout << "This program returns the integer value 0\n";

}

Также обратите внимание, что ни ISO C ++, ни C99 не позволяют исключать тип из объявления. То есть, в отличие от C89 и ARM C ++, «int» не предполагается там, где в объявлении отсутствует тип. Вследствие этого:

#include <iostream>

  

main() { / * ... * / }

ошибка, потому что отсутствует возвращаемый тип main ().

Источник: http://www.stroustrup.com/bs_faq2.html#void-main

Подводя итог вышесказанному, никогда не стоит использовать «void main ()» или просто «main ()», поскольку это не подтверждает стандарты. Это может быть разрешено некоторыми компиляторами.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Можно ли писать «void main ()» или «main ()» в C / C ++?

0.00 (0%) 0 votes