Стандарт C ++ не имеет понятия пользовательских функций. Вместо этого он имеет понятие библиотечных функций . main не является библиотечной функцией. Однако стандарт также накладывает некоторые требования на свою подпись, и он не должен быть перегружен или объявлен как статический или встроенный. В частности, он не должен использоваться , что означает, что вы не можете его назвать.
Редактировать : Первоначально я проверял только стандарт Си. Теперь я также проверил стандарт C ++, и он использует «пользовательский» в следующих контекстах: операторы, типы, преобразования и библиотеки. Он также имеет объявленные пользователем пространства имен, объявленные пользователем конструкторы (по умолчанию и копии) и пользовательские конструкторы по умолчанию. Он имеет «пользовательские функции» в 27.1.1.