Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Функции имеют право изменять содержимое глобальных переменных?
Да 39 86.67%
Нет 4 8.89%
Не знаю 2 4.44%
Голосовавшие: 45. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2010, 07:56   #71
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от svbezm Посмотреть сообщение
2. если перменная невидима в данной функции или классе доступ к ней можно организовать через длинный asm указатель на ассемлерной вставке, необходимо только помнить, что на ассемблере
она будет иметь имя с _ впереди например name , будет _name, а
name[3] будет _name + 3.
Перед именем должны следовать размерность byte (или word , dword)
и далее символ указателя ptr ...
Зачем? Переменная сделана невидимой, для того чтобы ее не видели. Это Дельфи и получить данные с помощью указателя в обход методов класса будет сложно. Но я так и не пойму зачем мне это делать?
Код:
function TClass.x(Name: String): String;
begin
      Определим принадлежность переменной
      Проверим можем ли вернуть значение переменной
      Да, возьмем и скопируем значение переменной в result
      Нет - result:='';
end;
Сами переменные лежат в хранилищах, которых очень много. Например, когда читается программа, при обнаружении новой функции, создается ее экземпляр - там хранится код функции и ее переменные. Когда подключается новый модуль там хранится его код и его переменные и т.д.
Все переменные не лежат в одной куче, а хранятся строго там, где они создаются.
Самый примитивный уровень переменной:
Код:
type
      TPer = record
           Name: String;
           Value: String;
      end;
Они обертываются:
Код:
type 
      TPers = record
           Data: Array of TPer;
           Count: Integer;
           Name: String;
      end;
И далее объединяются в структуры - функция, которые собираются в хранилище функций, которые объединяются в юниты (со своими структурами переменных), которые объединены в программу.
И как Вы возьмете указатель на переменную? А главное цель таких манипуляций?
И если вы заметили, то передача массива не происходит совершенно . Передается одна единственная строка (которая на самом деле тоже указатель, потому как по умолчанию это длинная строка).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 16.04.2010 в 08:37.
Utkin вне форума Ответить с цитированием
Старый 16.04.2010, 08:27   #72
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Знаете господа, по-моему тема в тупик зашла...
Как утечки памяти и глобальная переменная связаны?
Да никак. Вы сейчас спорите ни о чем.
Цитата:
если перменная невидима в данной функции или классе доступ к ней можно организовать через длинный asm указатель на ассемлерной вставке
абсолютно нет никакого смысла такой финт выкидывать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2010, 09:29   #73
svbezm
Форумчанин
 
Регистрация: 02.04.2010
Сообщений: 104
По умолчанию

Все правильно. Будет работать .Смущает только то, вы пишите не структурно ориентированный язык на базе сруктурно-ориентированного.
Компиляция будет раза в 2-3 медленнее. А так все будет работать.

К сожалению мой больничный закрыли , я не смогу так часто учавствовать в дискуссии ... работа отнимает много времени.
Надеюсь , что вы закончите свой проект ,
и вы что-то поняли полезного из моих суждений. Удачи...
svbezm вне форума Ответить с цитированием
Старый 17.04.2010, 08:27   #74
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Смущает только то, вы пишите не структурно ориентированный язык на базе сруктурно-ориентированного.
От тыж боже ж мой проблема...
я не настолько любитель ООП чтоб все делать в нем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.04.2010, 07:59   #75
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Цитата:
и вы что-то поняли полезного из моих суждений. Удачи...
Харе Кришна Не удержался, простите.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
crazy horse вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
присвоить из бд переменным akimov_aleks БД в Delphi 6 07.04.2010 08:24
Построение графиков функций С++ (методы аппроксимации функций) amdbodia Общие вопросы C/C++ 0 24.05.2009 15:28
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
проблема с глобальным объектом Selebro Общие вопросы C/C++ 3 26.11.2008 20:22
Доступ к переменным RealSHELS Общие вопросы Delphi 4 15.06.2008 13:14