[В программировании Windows,] Почему точка входа приложения не была названа главной? Ну, во-первых, имя main уже было занято, и Windows не имела права зарезервировать альтернативное определение. Тогда не было комитета по стандартизации языка Си; C был тем, что сказал Деннис, и вряд ли было гарантировано, что Деннис предпримет какие-либо особые шаги для сохранения совместимости исходного кода Windows в любой будущей версии языка C. Поскольку K&R не указывал, что реализации могут расширять приемлемые формы функции main, вполне возможно, что существовал законный компилятор C, который отклонял программы, которые неправильно объявляли main. Текущий стандарт языка C явно разрешает альтернативные определения для конкретной реализации для main, но требование, чтобы все компиляторы поддерживали эту новую версию для Windows для компиляции программ Windows, неоправданно ограничило бы набор компиляторов, которые вы могли бы использовать для написания программ Windows.
Если вам удалось преодолеть это препятствие, у вас возникнет проблема, заключающаяся в том, что версия main для Windows должна быть примерно такой:
int main(int argc, char *argv[], HINSTANCE hinst,
HINSTANCE hinstPrev, int nCmdShow);
Из-за способа связывания C все вариации функции должны были согласовывать общие параметры. Это означает, что версия для Windows должна будет добавить свои параметры в конец самой длинной существующей версии main, а затем вам придется скрестить пальцы и надеяться, что язык C никогда не добавлял другую альтернативную версию main. Если вы пошли по этому пути, скрещенные пальцы не помогли вам, потому что оказалось, что третий параметр был добавлен в основной некоторое время спустя, и он противоречил вашей версии для Windows.
Предположим, вам удалось убедить Денниса запретить использование этой трехпараметрической версии main. Вам все равно нужно придумать эти первые два параметра, а это означает, что код запуска каждой программы должен содержать синтаксический анализатор командной строки. В те времена, когда было 16 бит, люди старались сохранить каждый байт. Сказав им: «Ой, и все ваши программы будут на 2 КБ больше», вероятно, вы не сделаете много друзей. Я имею в виду, что это четыре сектора ввода-вывода с дискеты!
Но, вероятно, причина, по которой точке входа Windows было присвоено другое имя, заключается в том, чтобы подчеркнуть, что это другая среда выполнения. Если бы он назывался main, люди брали бы программы на C, разработанные для консольной среды, бросали их в свой компилятор Windows, а затем запускали бы с катастрофическими результатами.
Надеюсь, это развеет ваши сомнения.