main () должна быть функцией из-за того, как она вызывается из системных библиотек.Он является частью стандарта POSIX.1 и определяет способ работы связи C
Основная связь должна быть extern global, она не может быть встроенной или статической, поскольку она вызывается из libc и обычно изфункция называется _start.
Например, типичная реализация _start в glibc:
int _start() {
__libc_init(argc, argv, __environ);
exit(main(argc, argv, __environ));
}
Различные реализации libc будут делать это аналогичным образом.
В C ++ основная функция должнабыть объявленным в глобальной области видимости (то есть) :: main ();снова, потому что он вызывается из функции, подобной init, такой как _start для libc в * nix функции выше после выполнения ...