Лекс Айрин утверждает следующее:
Лекс Айрин писал(а):Кстати, вы забываете одну особенность паскаля (да и других процедурных языков, если честно). Имя переменной/процедуры это тоже глобальная переменная.
Далее мой ответ http://www.freepascal.ru/forum/viewtopi ... 165#p92188
Дож писал(а):Это не особенность паскаля, а особенность Вашего восприятия терминов. Термины придумываете не Вы (к Вашему сожалению и к моему большому счастью), есть устоявшаяся терминология, которой придерживаются программисты и разработчики языков. Так, понятия «глобальная переменная» и «глобальный идентификатор» различны. Input, Output, ExitCode — глобальные переменные и глобальные идентификаторы. Имена функций — это глобальные идентификаторы, но не глобальные переменные. Локальная переменная не является глобальной. «Безымянная переменная» тоже не может быть глобальной переменной, хоть за ней и может скрываться глобальная область памяти.
Далее http://www.freepascal.ru/forum/viewtopi ... 165#p92179
Лекс Айрин писал(а):Дож писал(а): Так, понятия «глобальная переменная» и «глобальный идентификатор» различны. Input, Output, ExitCode — глобальные переменные и глобальные идентификаторы.
Вы хоть поняли, что сказали? Вы попали в свою же логическую ловушку. Попробуйте сделать ExitCode локальным? Тогда операционка просто не получит его.(локальные переменные исчезают после выхода из подпрограммы) Я не говорю о прочих создаваемых неявно переменных (например, буферы (очереди) сообщений и клавиатуры)
Ну и не стоит забывать, что функция это не только подпрограмма, но и соответствующая возвращаемому значению переменная... да, неявная, но тем не менее она участвует во всех допустимых для переменных соответствующего типа операциях. Как говорится.. если оно выглядит как утка, плавает как утка и крякает как утка, то оно утка.
плюс, это касается современного паскаля, наличие переменных процедурного типа... Ну и, что процедура, что функция это всего-лишь адрес, который может быть получен с помощью оператора "взятия адреса" (что, собственно, и есть приведение к переменной соответствующего типа).
Кто прав, а кто не прав? Чья терминология соответствует общепринятой? Какой терминологии придерживается большинство программистов fpc? Давайте же узнаем голосованием!
Добавлено спустя 3 минуты 41 секунду:
Полезное чтение:
https://ru.wikipedia.org/wiki/%D0%9F%D0 ... 8%D0%B5%29