Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Luke0208
33 / 58 / 6
Регистрация: 22.01.2017
Сообщений: 640
1

Почему все начинается с main()?

19.05.2017, 19:36. Просмотров 1124. Ответов 12
Метки нет (Все метки)

Выделяется память или что? почему не просто как в Паскале, или некоторых других языков?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2017, 19:36
Ответы с готовыми решениями:

Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;}
Препод мне доказывает, что void в main`е писать неправильно, а объяснить не может почему. Кто...

Почему у функции main() тип int? Почему не может быть какой-то другой, например, char?
Схема, касательно возвращаемого значения понятна. Не понятно почему именно целочисленное. Хелп)

Ошибка no main class (заголовок com/javafx/main/Main) на другом компьютере
У меня возникла такая проблема. Если я создаю пример JavaFX приложения в Netbeans и компилирую его...

Префиксный инкремент: почему вывод i начинается с 0?
const int n = 6; int a = new int { 1, 5, 7, 9, 8, 5 }; for(int i = 0; i < n; ++i) { ...

12
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29032 / 19163 / 7529
Регистрация: 22.10.2011
Сообщений: 33,397
Записей в блоге: 6
19.05.2017, 19:39 2
А почему в Паскале все начинается с begin и заканчивается end.? Может, потому что это и есть тело программы, основная функция, которая уже при необходимости вызывает подпрограммы? Так почему в Си должно быть иначе? Тут тоже есть основная функция, только называется она main().
0
Luke0208
33 / 58 / 6
Регистрация: 22.01.2017
Сообщений: 640
19.05.2017, 19:47  [ТС] 3
Просто интересно почему приняли именно такое решение.
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28000 / 15728 / 967
Регистрация: 15.09.2009
Сообщений: 67,817
Записей в блоге: 78
19.05.2017, 20:04 4
ну приняли и приняли... в программировании PLC (промышленного оборудования) это называется FC0 (не всегда, но зачастую) или банально PRG
0
SEGNET
67 / 67 / 11
Регистрация: 28.12.2012
Сообщений: 471
19.05.2017, 21:01 5
Цитата Сообщение от Luke0208 Посмотреть сообщение
Просто интересно почему приняли именно такое решение.
В опциях компилятора ее можно назвать как угодно.
Можно тут почитать https://ru.wikipedia.org/wiki/Стандартная_библиотека_языка_Си
0
Evg
Эксперт CАвтор FAQ
21090 / 8107 / 628
Регистрация: 30.03.2009
Сообщений: 22,440
Записей в блоге: 30
19.05.2017, 21:07 6
Цитата Сообщение от Luke0208 Посмотреть сообщение
Просто интересно почему приняли именно такое решение
А как, по твоему, должна была называться стартовая функция?
0
_Ivana
4340 / 2007 / 254
Регистрация: 01.03.2013
Сообщений: 5,389
Записей в блоге: 22
19.05.2017, 21:26 7
Лучший ответ Сообщение было отмечено Luke0208 как решение

Решение

Да никак она не должна называться Вообще функции быть не должно! Но Юникс наложил свой отпечаток на дизайн всего языка...
1
Luke0208
33 / 58 / 6
Регистрация: 22.01.2017
Сообщений: 640
19.05.2017, 21:33  [ТС] 8
Ivana, можно поподробнее?
0
_Ivana
4340 / 2007 / 254
Регистрация: 01.03.2013
Сообщений: 5,389
Записей в блоге: 22
19.05.2017, 21:41 9
Пиши на чистом асме, безо всяких функций и компиляторов - никакие мэйны не понадобятся
0
CoderHuligan
851 / 587 / 208
Регистрация: 30.06.2015
Сообщений: 3,256
Записей в блоге: 30
20.05.2017, 14:14 10
Цитата Сообщение от Luke0208 Посмотреть сообщение
Просто интересно почему приняли именно такое решение.
Потому что в программе должна быть начальная точка входа. Почему она именно в виде функции? Потому, что, зачастую, нужно ей передавать параметры при старте. А как передавать параметры если не будет приёмника этих параметров в виде функции? Это позволяет иметь большую гибкость.
А насчёт паскаля, то сам Вирт давно уже забыл о своём первом творении. И кстати, в Обероне-2, уже нет начальной определённой точки входа, так как она может быть теперь в любом модуле.
0
Mournful Max
Велосипедист...
349 / 216 / 73
Регистрация: 15.12.2015
Сообщений: 785
Завершенные тесты: 1
20.05.2017, 14:19 11
Evg,
Цитата Сообщение от Evg Посмотреть сообщение
А как, по твоему, должна была называться стартовая функция?
start
0
Evg
Эксперт CАвтор FAQ
21090 / 8107 / 628
Регистрация: 30.03.2009
Сообщений: 22,440
Записей в блоге: 30
20.05.2017, 14:36 12
Цитата Сообщение от Captain Maxee Посмотреть сообщение
start
Таким именем (start, _start, __start) обычно называют реальную точку входа в программу (и уже только потом имеется точка входа в пользовательскую часть программы - main). Да и в любом случае, чем start принципиально от main отличается?

Почему точкой входа сделали функцию? А чем некое тело программы в паскале или обероне отличается от функции? Да ничем (кроме синтаксиса). Язык Си изначально был аналогом высокоуровневого ассемблера, но с процедурной организацией. Реализация точки входа в пользовательскую часть программу в виде функции была, вероятно, самой удобной
1
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
6338 / 3085 / 837
Регистрация: 18.10.2014
Сообщений: 5,812
20.05.2017, 17:37 13
Цитата Сообщение от Luke0208 Посмотреть сообщение
Выделяется память или что? почему не просто как в Паскале, или некоторых других языков?
О чем вопрос вообще?

С чего-то программа должна начинаться? Должна. Так в чем тогда проблема с main?
0
20.05.2017, 17:37
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2017, 17:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Почему индекс массива начинается с нуля ?
Почему первый элемент массива обозначается 0 , а не 1.

Почему отрисовка начинается не с начала окна?
Ребята объясните пожалуйста. Начал разбираться в openGL. Возник вопрос хочу нарисовать обычную...

Почему счетчик в цикле for начинается с нуля, а не с единицы?
привет. почему когда надо сделать какое-то действие, например 4 раза, то пишут: for (int i=0,...

Не могу понять, почему ввод строк начинается со 2-ой строки
не могу понять, почему ввод строк начинается со 2-ой строки #include <iostream>...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.