|
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
|
|
Определить время жизни Static переменной12.09.2014, 04:34. Показов 5220. Ответов 29
Метки нет (Все метки)
Привет народ. Вопрос: Если static переменная объявлена в теге(внутри функции), она будет жить пока не закроется тег или всю функцию и после неё? Спасибо.
0
|
|
| 12.09.2014, 04:34 | |
|
Ответы с готовыми решениями:
29
C++11 время жизни переменных Время жизни объекта |
|
286 / 192 / 56
Регистрация: 25.12.2012
Сообщений: 640
|
|
| 12.09.2014, 21:53 | |
|
Ну хорошо скажу тебе так.
Функция при вызове выделяет себе определенный размер стековой памяти уменьшая значения ESP эта дешевая операция. Предположим что твоя переменная которая закончила свою жизнь находится между переменных которые ещё существуют. Ты представляешь сколько нужно выполнить операций для её удаления. Теперь вопрос: Стоит ли за ради экономии 4 Байт выполнять кучу не нужных операция ?
0
|
|
|
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
|
|
| 12.09.2014, 21:58 [ТС] | |
|
Если Вы мне задаёте этот вопрос, значит просто меня не знаете..)
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||||
| 12.09.2014, 22:01 | |||||||||
|
В общем не знаю что ты там выравнивал, но если хотел вывести 4, то вообще-то стек на x86 растет вниз и нужен вот такой
0
|
|||||||||
|
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
|
|
| 12.09.2014, 22:03 [ТС] | |
|
Скомпилируй, и увидишь, что адреса сходится будут.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 12.09.2014, 22:04 | |
|
lenchis001, http://habrahabr.ru/post/128991/
0
|
|
|
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
|
|
| 12.09.2014, 22:07 [ТС] | |
|
нам это на системном программировании каждый день..
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 12.09.2014, 22:09 | |||
Сообщение было отмечено Убежденный как решение
РешениеДобавлено через 2 минуты ![]() 10 раз уже сказали, что все эти махинации - это UB. Хочешь знать что происходит в конкретном варианте? Смотри дизасм, меняй программу, снова смотри дизасм и т.д.. Только будь готов, что на другом компиляторе может быть совсем по-другому.
0
|
|||
|
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
|
|
| 12.09.2014, 22:19 [ТС] | |
|
у меня сходятся. дополнить нечего.
Добавлено через 9 минут поменял, и то что я говорю подтверждается: он специально не удаляет переменные, на которые сделан указатель. но вот как от этой сохранённой переменной потом избавится наконец - вопрос открытый..
0
|
|
|
Ушел с форума
|
||||
| 12.09.2014, 22:31 | ||||
|
__declspec(naked), далее пишешь свой пролог и эпилог для каждой функции и на выходе ручками затираешь все стековые переменные в ноль. Лепота ! Добавлено через 1 минуту Добавлено через 22 секунды
0
|
||||
|
|
||||||
| 13.09.2014, 18:53 | ||||||
|
Как и обещал. (пишу по памяти, с телефона, сидя в лесу под деревом, поэтому могу допустить незначительные ошибки)
Используя компилятор GCC 4.8.2 в составе MinGW я узнал следующее. Пример:
Если же уменьшить размер массивов на еденицу, то на выходе будет 1 и 8. Компилятор, по не понятной мне причине, увеличивает срок жизни (lifetime) стековых переменных если стековой памяти достаточно, хотя стандарт этого не требует. Да и не за чем.. Добавлено через 11 минут А от сохранённой переменной (которая по стандарту временная) избавлятся не недо. Это забота компилятора.
0
|
||||||
| 13.09.2014, 18:53 | |
|
Время жизни объектов Время жизни переменных Инициализация static переменной
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|