Глобальные переменные

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

В паскале имя функции — это …

глобальная переменная И глобальный идентификатор.
2
9%
НЕ глобальная переменная, НО глобальный идентификатор.
9
41%
глобальная переменная И НЕ глобальный идентификатор.
0
Голосов нет
НЕ глобальная переменная И НЕ глобальный идентификатор.
11
50%
 
Всего голосов : 22

Re: Глобальные переменные

Сообщение Снег Север » 31.12.2015 20:48:03

vitaly_l писал(а):Кто Вам сказал что Пи нужно вычислять, как: "отношение длины к диаметру"??? ... <== Вас "обманули" одурачили в школе!

Благодарю, с вами всё понятно!
Вечные двигатели бороздят просторы Большого театра...
Кстати, пока не забыл - Мамай и Дмитрий Донской один и тот же человек? :lol:
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: Глобальные переменные

Сообщение Дож » 01.01.2016 00:21:42

Лекс Айрин писал(а):
Дож писал(а):Как видим, в трёх случаях ни разу значение не возвращалось через стек.


Что ж, ошибся. Про регистры то я и забыл... Впрочем, это, на самом деле, мало что меняет -- если присмотреться, то все переменные хранятся в стеке.

«на самом деле, мало что меняет»? Вы действительно так считаете?

У Вас очень детское и наивное представление: будто бы общее почти всегда можно познать на основе частных случаев. «Если придумали алгоритм в простом случае, то легко доработаем до более сложного случая». «Если решили простую задачу, то без проблем решим и усложнённую версию». Теперь вот общие выводы делаем на основе каких-то ассемблерных кодов, которые я получил. Это всё неверные логические переходы — такие рассуждения не работают! От S=ab до взятия интегралов нужно проделать огромную работу.

Говоря про возвращение значений, есть ещё куча факторов, которые Вы не учитываете. Среди них архитектура процессора, операционная система, и, например, оптимизации (fpc -O3):
Код: Выделить всё
.section .text.n_p$program_$$_func_register_int$longint$longint$$longint,"x"
   .balign 16,0x90
.globl   P$PROGRAM_$$_FUNC_REGISTER_INT$LONGINT$LONGINT$$LONGINT
P$PROGRAM_$$_FUNC_REGISTER_INT$LONGINT$LONGINT$$LONGINT:
# Var A located in register eax
# Var B located in register edx
# Var $result located in register eax
# [15] begin
# [16] Result := A + B;
   leal   (%eax,%edx),%eax // <-- Ну и где здесь ebp?
# Var $result located in register eax
# [17] end;
   ret


(содержимое ebp практически сразу же становится равным esp ). А после присваивания принадлежащий функции участок стека удаляется.

Это не имеет отношения к делу. Функция начинает завершать своё выполнение в тот момент, когда начинает выполняться инструкция ret, и завершает его в тот момент, когда ret отработало. То, что было перед всем этим — это внутренняя кухня данной конкретной функции, она никому ничем не обязана в достижении поставленных целей. Она должна вернуть вызывающему коду значение в EAX, а что она там по ходу дела кладёт или не кладёт в стек — это уже отдельный вопрос. Анализировать эту внутреннюю кухню и выискивать в ней какой-то глубинный смысл об истинном положении вещей — ошибка.

Может быть, поправите формулировку в http://freepascal.ru/forum/viewtopic.php?f=2&t=10858&start=15#p92264? Потому что для частного случая, который я привёл для рассмотрения
Код: Выделить всё
var
  X: LongInt = 0;
  Y: LongInt = 0;

function GetRandom: LongInt;
begin
  Inc(X);
  Y := Y + X;
  Result := X*Y;
end;

по Вашему разбору, переменная GetRandom «находится (после окончания работы функции) на вершине стека», а её адрес «либо ее непосредственное значение, либо ссылка на него», — лично для меня это звучит как набор слов.

И лучше вообще уйти от ассемблера, деталей реализации и прочих лишних сущностей, особенно если Вы в них плаваете, и сформулировать что-то в рамках языка паскаль (как пример: «переменная GetRandom — это Result после окончания работы функции, без этой псевдопеременной невозможно реализовать функцию как конструкцию, она временная, не описана, но к ней реально получить доступ, и она называется GetRandom и т.д.»).

Добавлено спустя 7 минут 10 секунд:
vitaly_l писал(а):
sign писал(а):Нельзя изменить Pi, поскольку это соотношение из физической реальности. Но, я согласен, вам, художникам, сие непонятно!

Физической или же всё таки геометрической???
Хотя, безусловно Вами приведён: Весомый аргумент, но Вы заблуждаетесь.
Смотрите, меняю Пи и затем меняю в корне "всю" математику.
Допустим: Пи теперь не 3.14, а 6.28 (сокращено до 2 знака).
Теперь осмыслим: точность геометрии сохранится? <== Да/нет?
Безусловно ответ "Да", т.к. я всего лишь увеличил Пи в два раза.

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

Это как если бы я пообещал подарить миру новый язык по мотивам FPC, переработать ВЕСЬ ЯЗЫК, но единственное его отличие состояло бы в том, что вместо begin/end были бы слова start/finish. Т.е. я был бы балаболом.

Добавлено спустя 7 минут 43 секунды:
Снег Север писал(а):Кстати, пока не забыл - Мамай и Дмитрий Донской один и тот же человек? :lol:

Всё-таки Фоменко и Носовский вносят свою пользу: они создали довольно обширную систему, в рамках которой задали историкам много очень даже правильных вопросов, перепроверили много источников, применили много теорий, начиная от откровенных бредней и заканчивая вполне логичными и правильными подходами. О чём они думают, когда сливают Мамая и Дмитрия, сложно судить, — но не исключено, что это такой маркетинговый способ встряхнуть историков и донести свои идеи.

А в данном случае пациент больше напоминает Рыбникова (который придумал русскую арифметику и русскую таблицу химических элементов):
https://www.youtube.com/watch?v=8-UTJFpnub8
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Глобальные переменные

Сообщение Снег Север » 01.01.2016 09:18:31

Дож писал(а):Всё-таки Фоменко и Носовский вносят свою пользу: они создали довольно обширную систему, в рамках которой задали историкам много очень даже правильных вопросов, перепроверили много источников, применили много теорий, начиная от откровенных бредней и заканчивая вполне логичными и правильными подходами.

Ой, только не надо! Насчет "правильных вопросов" - как известно, один дурак может назадавать столько вопросов, что и сто мудрецов не ответят. Не зря говорят, что в правильном вопросе уже содержится половина ответа, а у Фоменко и Ко там правильность и не ночевала.
Ну и еще - я всегда интересовался историей, в т.ч. методологией исторических реконструкций. Так вот - в фоменковщине научной методологии нет от слова "вообще". Я уж не говорю о многочисленных ошибках и подтасовках, которые давно разобраны.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: Глобальные переменные

Сообщение Лекс Айрин » 04.01.2016 11:33:30

Дож писал(а):У Вас очень детское и наивное представление: будто бы общее почти всегда можно познать на основе частных случаев. «Если придумали алгоритм в простом случае, то легко доработаем до более сложного случая». «Если решили простую задачу, то без проблем решим и усложнённую версию». Теперь вот общие выводы делаем на основе каких-то ассемблерных кодов, которые я получил.



Вообще, так работают все программисты (И, как ни странно, ученые) И, кстати, странная у Вас манера отказываться от своих аргументов, как только они вам мешают.

Дож писал(а):И лучше вообще уйти от ассемблера, деталей реализации и прочих лишних сущностей, особенно если Вы в них плаваете, и сформулировать что-то в рамках языка паскаль (как пример: «переменная GetRandom — это Result после окончания работы функции, без этой псевдопеременной невозможно реализовать функцию как конструкцию, она временная, не описана, но к ней реально получить доступ, и она называется GetRandom и т.д.»).

Оу... Вы все сказали именно так, как следует.... но именно ВЫ просили этих подробностей. Кстати, не забудьте еще и возможность вызвать функцию из себя самой... (рекурсия).

И ради чего Вы вставали в позу, если сами все понимаете?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Глобальные переменные

Сообщение sign » 08.01.2016 07:43:38

vitaly_l писал(а):
sign писал(а):Нельзя изменить Pi, поскольку это соотношение из физической реальности. Но, я согласен, вам, художникам, сие непонятно!

Физической или же всё таки геометрической???
Хотя, безусловно Вами приведён: Весомый аргумент, но Вы заблуждаетесь.
Смотрите, меняю Пи и затем меняю в корне "всю" математику.
Допустим: Пи теперь не 3.14, а 6.28 (сокращено до 2 знака).
Теперь осмыслим: точность геометрии сохранится? <== Да/нет?
Безусловно ответ "Да", т.к. я всего лишь увеличил Пи в два раза.

Вы не изменили Pi, вы использовали 2Pi. :?
Pi изменить невозможно по определению.

vitaly_l писал(а):А что станет с математикой???
Правильно! Все формулы, "придётся" переделать под новое Пи, которое теперь равно 6.28, а не 3.14...

C математикой ничего не будет от слова абсолютно.
Как бы вы не переделывали формулы, но если вы берёте 6.28, то получите, всё равно исходное.
Например, площадь круга - πr^2. Берём ваше как бы новое Pi - обозначим его как π'. Получим формулу для площади круга (π'r^2)/2. Замечая очевидное преобразование, что π' = 2π и стремясь к совершенству, получим наше прежнее выражение (π'r^2)/2 = (2πr^2)/2 = πr^2.

vitaly_l писал(а):И кто из нас оторван от реальности? Художники или программисты? А? Ага...

Вы.

vitaly_l писал(а):
sign писал(а): вы в слова "Большой взрыв" вкладываете своё обыденное понимание.
при понимании теории БВ - пропуск в мир реальной физики - инфляция.

Я напомню, что мы холиварим: "о глобальных переменных"... И рассматриваем большой взрыв как зарождение вселенной.
А до большого взрыва "компьютер" был выключен и вселенной не существовало? <=== Правильно?

Инфляционная теория - одна из теорий, которая принимается большинством физиков на данном этапе развития науки.
Что было до инфляции - читайте теорию, там написано.

vitaly_l писал(а):Или же вернёмся к реальности и увидим, что есть ещё скорость света, которая...
инфляция вход? А дефляция - тогда это я так понимаю выход? Да?

Вы лучше сперва внимательно изучите инфляционную теорию.

vitaly_l писал(а):
Снег Север писал(а):кстати, произвольно изменить число пи или "е" нельзя.

Ну это вообще позор для физика... Утверждать что число "е" изменить нельзя... Где Вы учились? :wink:

Нельзя.
В любых ваших манипуляциях с этими числами, как π или e, они останутся неизменными. А если вы примените домножение на константу, то равно, вам придется при использовании как бы новых π и e, сокращать на эту же константу, чтобы получать реальные данные.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Глобальные переменные

Сообщение Дож » 13.01.2016 16:09:09

Лекс Айрин писал(а):
Дож писал(а):У Вас очень детское и наивное представление: будто бы общее почти всегда можно познать на основе частных случаев. «Если придумали алгоритм в простом случае, то легко доработаем до более сложного случая». «Если решили простую задачу, то без проблем решим и усложнённую версию». Теперь вот общие выводы делаем на основе каких-то ассемблерных кодов, которые я получил.


Вообще, так работают все программисты (И, как ни странно, ученые)


Нет, учёные так не работают. В научных статьях не будет написано «Мы получили A в случаях 1, 2, 3, а значит верно и A'».

И, кстати, странная у Вас манера отказываться от своих аргументов, как только они вам мешают.


Я не отказываюся от аргументов. Я привёл контрпримеры для опровержения общего утверждения, но для доказательства общего утверждения приведение примеров работает плохо.

Представим себе, что некто L сообщил мне, что «все вороны белые». Я вышел во двор и сделал три фотографии:

ИзображениеИзображениеИзображение

Я спрашиваю у L: «как так? Утверждение не подтверждается экспериментально, в чём проблема?».

Я ожидаю, что L пересмотрит свои взгляды, либо поменяет формулировку утверждения на другую, если неудачно сформулировал, либо скажет, что, действительно, есть какое-то несоответствие, но у него пока что нет времени разобраться в деталях что не так, либо ещё что-нибудь сделает (выйдет во двор и сделает свои фотографии ворон, например).

Я никак не ожидаю от L ответа «вообще-то ничего страшного, на этих фотографиях можно приглядеться и увидеть белый цвет». Мало того, что это дичь из разряда «чёрное — это белое», мало того, что в изначальной формулировке явно говорилось про белые вороны, а не про белые фрагменты на воронах, так самое, что огорчает, — L на основании этих фотографий продолжает делать выводы, а не идёт узнавать что такое вороны, как они выглядят и какие бывают. Использовать контрпримеры для подтверждения утверждения — нонсенс.

Дож писал(а):И лучше вообще уйти от ассемблера, деталей реализации и прочих лишних сущностей, особенно если Вы в них плаваете, и сформулировать что-то в рамках языка паскаль (как пример: «переменная GetRandom — это Result после окончания работы функции, без этой псевдопеременной невозможно реализовать функцию как конструкцию, она временная, не описана, но к ней реально получить доступ, и она называется GetRandom и т.д.»).

Оу... Вы все сказали именно так, как следует.... но именно ВЫ просили этих подробностей. Кстати, не забудьте еще и возможность вызвать функцию из себя самой... (рекурсия).

И ради чего Вы вставали в позу, если сами все понимаете?


Вы взяли некое определение из википедии в качестве убедительно доказывающего Вашу правоту. Я попросил конкретную функцию GetRandom подставить в это определение и детально расписать что есть что. Если Вы правы, то Вам не должно составить труда это проделать, провести пошаговое соответствие, с которым я буду вынуждени согласиться.

Тут никто не встаёт в позу, это всё — стандартная процедура проверки терминов на согласованность. Я сам не в состоянии подставить GetRandom в то определение, потому что в моих попытках возникает куча противоречий, но мой собеседник говорит, что это возможно, поэтому я прошу его это детально проделать.

В качестве подстановки Вы приводите некий текст про состояние стека на момент завершение функции. Как далее оказалось (в моих примерах) — что в какие моменты находится на вершине стека не очень ясно (то ли результат работы, то ли мусор, то ли ещё что, и вообще мне даже не вполне понятно что такое вершина стека). Причиной проблемы является то, что скомпилированная программа устроена сложно и оба собеседника, видимо, не разбираются в деталях как именно.

На данный момент получается «GetRandom — это переменная, которая указывает на какой-то мусор на стеке, и существующая в короткий момент времени завершения выполения функции GetRandom». Так как это звучит абсурдно, а Вы на данный момент не отказались ни от каких своих утверждений (кроме того утверждения, что всё возвращается через стек, и то не совсем отказались), я попросил переформулировать свои утверждения более ясно, с поправками на выясненные обстоятельства.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Глобальные переменные

Сообщение Лекс Айрин » 14.01.2016 10:03:48

Дож писал(а):На данный момент получается «GetRandom — это переменная, которая указывает на какой-то мусор на стеке, и существующая в короткий момент времени завершения выполения функции GetRandom».


Да нет... существует она, все время выполнения функции. Внутри функции она называется Result и последнее действие функции передача ее значения наружу, где к ней, фактически, на короткий момент обращаются по имени функции.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Глобальные переменные

Сообщение Дож » 14.01.2016 19:31:06

А так?
Код: Выделить всё
var
  X: LongInt = 0;
  Y: LongInt = 0;

procedure GetRandom(out Result: LongInt);
begin
  Inc(X);
  Y := Y + X;
  Result := X*Y;
end;


На какой адрес памяти указывает переменная GetRandom?
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Глобальные переменные

Сообщение bormant » 15.01.2016 02:21:40

На точку входа в процедуру она указывает, и для функций, и для процедур. Иной семантики у идентификатора процедуры/функции нет. Возвращаемыми функцией результат подставляется в точке ее вызова, но вызов делается на точку входа.
Другое дело, что просто так в сегмент кода вам пописать не дадут, но случаи, они разные бывают...
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Глобальные переменные

Сообщение vitaly_l » 15.01.2016 03:02:22

bormant писал(а):На точку входа в процедуру она указывает, и для функций, и для процедур. Иной семантики у идентификатора процедуры/функции нет. Возвращаемыми функцией результат подставляется в точке ее вызова, но вызов делается на точку входа.

Странно... там не должно быть никакого адреса... Адрес должен даваться позже... только уже при использовании функции.
Вот так: ImAdress := GetRandom();
Либо, вот так: GetRandom( ImAdress );
А сам адрес в памяти, задают вот здесь: var ImAdress : LongInt;
Разве не так? :cry:

Но меня взволновал другой вопрос, в частности Дож написал:
Дож писал(а):А в данном случае пациент больше напоминает Рыбникова (который придумал русскую арифметику и русскую таблицу химических элементов): и здесь ссылка на видео...

Дож, Ваше видео, к математике, химии, а тем более ко мне — никакого отношения не имеет. На видео, провокатор, зомбирует малограмотных граждан, прививает им нацизм и деменцию. Дож, но зачем, Вы-то, разумный и образованный человек: размещая ПРЯМЫЕ гиперссылки - поднимаете рейтинг нацистам? Быть может имеет смысл убрать ПРЯМУЮ гиперссылку на нацистский фильм, чтобы другие дети и малограмотные не заболели деменцией/нацизмом? Как Вы думаете, Дож?


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Глобальные переменные

Сообщение bormant » 15.01.2016 10:57:31

vitaly_l писал(а):там не должно быть никакого адреса

Следите за руками:
Код: Выделить всё
{$mode ObjFPC}
var
  X: LongInt = 0;
  Y: LongInt = 0;

procedure GetRandom(out Result: LongInt);
begin
  Inc(X);
  Y := Y + X;
  Result := X*Y;
end;

var t: LongInt;
begin
  GetRandom(t);
end.

Код: Выделить всё
fpc -al test

Код: Выделить всё
...

.section .text.n_p$program_getrandom$longint,"x"
   .balign 16,0x90
.globl   P$PROGRAM_GETRANDOM$LONGINT
P$PROGRAM_GETRANDOM$LONGINT:
# Temps allocated between ebp-4 and ebp-4
# [d.pas]
# [7] begin
   pushl   %ebp
   movl   %esp,%ebp
   subl   $4,%esp
# Var Result located at ebp-4
   movl   %eax,-4(%ebp)
# [8] Inc(X);
   incl   TC_P$PROGRAM_X
# [9] Y := Y + X;
   movl   TC_P$PROGRAM_Y,%edx
   movl   TC_P$PROGRAM_X,%eax
   addl   %eax,%edx
   movl   %edx,TC_P$PROGRAM_Y
# [10] Result := X*Y;
   movl   TC_P$PROGRAM_X,%edx
   movl   TC_P$PROGRAM_Y,%eax
   imull   %eax,%edx
   movl   -4(%ebp),%eax
   movl   %edx,(%eax)
# [11] end;
   leave
   ret

.section .text.n__main,"x"
   .balign 16,0x90
.globl   PASCALMAIN
PASCALMAIN:
.globl   _main
_main:
# Temps allocated between ebp+0 and ebp+0
# [14] begin
   pushl   %ebp
   movl   %esp,%ebp
   call   FPC_INITIALIZEUNITS
# [15] GetRandom(t);
   movl   $U_P$PROGRAM_T,%eax
   call   P$PROGRAM_GETRANDOM$LONGINT
# [16] end.
   call   FPC_DO_EXIT
   leave
   ret
# End asmlist al_procedures

...

Красивый "GetRandom" в коде стал (в результате манглинга -- преобразования для обеспечения уникальности имен) "P$PROGRAM_GETRANDOM$LONGINT", а значение его равно вот этому адресу из листинга выше (это метка):
Код: Выделить всё
P$PROGRAM_GETRANDOM$LONGINT:

Когда GetRandom употребляют как оператор вызова процедуры, компилятор вставляет в код передачу параметров и вызов процедуры, из примера выше:
Код: Выделить всё
   movl   $U_P$PROGRAM_T,%eax
   call   P$PROGRAM_GETRANDOM$LONGINT

Как видите, опять это адрес P$PROGRAM_GETRANDOM$LONGINT, который в паскалевом коде GetRandom.


То же самое в MASM-синтаксисе (fpc -Amasm -al test):
Код: Выделить всё
_CODE      SEGMENT   PARA PUBLIC USE32 'CODE'
   ALIGN 16
   PUBLIC   P$PROGRAM_GETRANDOM$LONGINT
P$PROGRAM_GETRANDOM$LONGINT:
; Temps allocated between esp+0 and esp+0
; Var Result located in register eax
; [d.pas]
; [7] begin
; [8] Inc(X);
      inc   dword ptr [TC_P$PROGRAM_X]
; [9] Y := Y + X;
      mov   ecx,dword ptr [TC_P$PROGRAM_Y]
      mov   edx,dword ptr [TC_P$PROGRAM_X]
      add   ecx,edx
      mov   dword ptr [TC_P$PROGRAM_Y],ecx
; [10] Result := X*Y;
      mov   edx,dword ptr [TC_P$PROGRAM_X]
      mov   ecx,dword ptr [TC_P$PROGRAM_Y]
      imul   edx,ecx
      mov   dword ptr [eax],edx
; [11] end;
      ret
_CODE      ENDS

_CODE      SEGMENT   PARA PUBLIC USE32 'CODE'
   ALIGN 16
   PUBLIC   PASCALMAIN
PASCALMAIN:
   PUBLIC   _main
_main:
; Temps allocated between esp+0 and esp+0
; [14] begin
      call   FPC_INITIALIZEUNITS
; [15] GetRandom(t);
      mov   eax,offset U_P$PROGRAM_T
      call   P$PROGRAM_GETRANDOM$LONGINT
; [16] end.
      call   FPC_DO_EXIT
      ret
; End asmlist al_procedures
; Begin asmlist al_globals
_CODE      ENDS
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Глобальные переменные

Сообщение vitaly_l » 15.01.2016 12:41:34

bormant писал(а):Как видите, опять это адрес P$PROGRAM_GETRANDOM$LONGINT, который в паскалевом коде GetRandom.

:arrow: Стоп...
:!: Изучим: call P$PROGRAM_GETRANDOM$LONGINT.... безусловно CALL это переход на нужный адрес в памяти... вот только там лежит НАЧАЛО процедуры... Точнее: программного кода, который должен быть выполнен от адреса заданного в CALL до команды RET... Команда RET берёт в стеке адрес возврата на строку кода, которая находится ПОСЛЕ команды CALL. Соответственно: P$PROGRAM_GETRANDOM$LONGINT <=== это не адрес ВОЗВРАЩАЕМОГО значения, а адрес НАЧАЛА кода процедуры. <=== Разве не так?

Соответственно по адресу: "call P$PROGRAM_GETRANDOM$LONGINT" <== никаких переменных нет... там лежит выполняемый КОД ПРОГРАММЫ, а не значение/результат функции... <=== Согласны?

Добавлено спустя 555 минут 55 секунд:
Это всё потому что, программисты - не любят, самый любимый оператор художников: GoTo.
В смысле: CALL и RET <== делают "тоже самое" что и оператор GoTo.
Но программистам <=== использовать GoTo <=== запрещено!!!
А к тем программистам, которые будут пользоваться GoTo, придёт: коварный BSOD-a и система клиентов: "ласты склеит".
Но Лекс Айрин - прав, НАЗВАНИЕ функции, хранится в памяти, ТАКЖЕ, как обычная переменная и туда(по адресу названия) можно записать "ЛЮБОЕ" значение ( которое - НЕ превысит объём выделенной памяти ).


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Глобальные переменные

Сообщение Лекс Айрин » 15.01.2016 15:17:22

vitaly_l писал(а):Но программистам <=== использовать GoTo <=== запрещено!!!
А к тем программистам, которые будут пользоваться GoTo, придёт: коварный BSOD-a и система клиентов: "ласты склеит".


уточню, беспорядочное использование... оно, понимаешь ли, как и аналогичные связи, приводит к аналогичным проблемам. :D
vitaly_l писал(а):Но Лекс Айрин - прав, НАЗВАНИЕ функции, хранится в памяти, ТАКЖЕ, как обычная переменная и туда(по адресу названия) можно записать "ЛЮБОЕ" значение ( которое - НЕ превысит объём выделенной памяти ).


Я этого не говорил! И, если уж на то пошло, с помощью свопа можно адресовать количество памяти превышающее объем ОЗУ. Вот только проблемы это принесет недетские.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Глобальные переменные

Сообщение Дож » 15.01.2016 16:33:53

bormant, Вы, получается, тоже утверждаете, что GetRandom — это переменная? :)

vitaly_l писал(а):Дож, Ваше видео, к математике, химии, а тем более ко мне — никакого отношения не имеет. На видео, провокатор, зомбирует малограмотных граждан, прививает им нацизм и деменцию. Дож, но зачем, Вы-то, разумный и образованный человек: размещая ПРЯМЫЕ гиперссылки - поднимаете рейтинг нацистам? Быть может имеет смысл убрать ПРЯМУЮ гиперссылку на нацистский фильм, чтобы другие дети и малограмотные не заболели деменцией/нацизмом? Как Вы думаете, Дож?

Как насчёт нет, vitaly_l?
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Глобальные переменные

Сообщение vitaly_l » 15.01.2016 16:43:02

Дож писал(а):Как насчёт нет, vitaly_l?

Что значит нет? Ваше "нет" означает что, Вы - хотите оставить прямую гиперссылку на видео, в котором провокатор прививают нацизм и деменцию?
Вы хотите, чтобы: дети и малограмотные - посмотрев "Ваше" видео, стали нацистами?
Или Вы хотите чтобы, забанили этот форум, когда роботы обнаружат гиперссылку и установят связь?

И вот ещё Вам в догонку:
Дож, знаете ли Вы, что, геноцид, запрещён в РФ? За геноцид, предусмотрена: смертная казнь(см. ст.357.УКРФ)
Дож, знаете ли Вы, что, за распространение видео провоцирующих нацизм — тоже предусмотрено наказание? (см. ст.282.УКРФ)
Нужно ли Вам ещё пояснять о необходимости убрать гиперссылку на нацистский видеофильм? С учётом того что на Украине и в Сирии (и не только) уже убивают людей, именно благодаря таким видеофильмам. Так Вы будете адекватны или же, Вы, посмотрев видео - уже больны нацизмом?
Заметь-те я нацизм называю именно болезнью.


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2

Рейтинг@Mail.ru