Re: уже совсем не хочется squirrelsh
On Mon, 1 Feb 2010, Dmitry Nezhevenko wrote:
On Mon, Feb 01, 2010 at 04:30:27AM +0300, Alexandr Sagadeev wrote:
Однако, в любом случае, все эти замены есть стандартное свойство Форта, в
котором слова (проседуры) ядра ничем не отличаются от пользовательских. В
C же другая ситуация -- для такой замены требуется перекомпиляция самого
компилятора, что бы изменить startup. Переход на функцию main в C зашит в
коде компилятора.
В GCC -- возможно да, в MSVC можно указать любую функцию.
Стандарт ISO/IEC 9899:1999 (E)
5.1.2.2.1 Program startup
The function called at program startup is named main. The implementation
declares no prototype for this function. It shall be defined with a return
type of int and with no parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any
names may be used, as they are local to the function in which they are
declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent;9) or in some other implementation-defined manner.
Стандарт 89 года искать лень, да там скорее всего то же самое.
Так что внутри языка точка входа определена однозначно.
Конечно, в реальной жизни может быть использована смесь
языков и взята точка входа откуда угодно, хоть из
фортрана... Плюс фантазия создателей компиляторов.
Она не стандартизована.
Ю.
Reply to: