![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Господа, после бессонной ночи тихо недоумеваю:
Код:
|
![]() |
![]() |
![]() |
#2 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
думаю сильно зависит от компилятора. помоему MS умеет такое делать именно для статических переменных, даже если переменная не была явно объявлена __declspec(thread).
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Где-то я поймал трудно повторяемый баг и не вижу. Повторный вызов из разных потоков возвращает уже одинаковое значение.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
а я думал, что при доступе к любым данным из разных потоков необходима синхронизация..
впрочем это довольно маловероятно, статические переменные являются так сказать глобальными переменными, по этой же причине инициализируются в самом начале выполнения программы, хотя кто знает |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]() |
![]() |
![]() |
![]() |
#7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А где Си хранит такие переменные?
По идее раз у автора разные адреса всплывают значит это разные переменные. так?
I'm learning to live...
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
компиль либо инициализирует это сразу через секции данных. либо же проверяя "была ли она инициализирована" и если надо инициализирует. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
секции кода, данных - понятия форматов PE, ELF итд, имеющих отношение к операционной системе
при старте процесса происходит проецирование его файла (EXE, по аналогии DLL) на страницы виртуальной памяти, устанавливая на страницы памяти нужные права (read-only, read-write, execute, etc..) расположение секций и данных в них устанавливает линковщик (пускай вы имели в виду его, упоминая компилятор), но в run-time то не он этим занимается Последний раз редактировалось alex_x_x; 14.08.2011 в 17:15. |
![]() |
![]() |
![]() |
#10 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
ну а объект инициализировать в статике(при построении имею в виду) не выйдет(особенно если через указатель он хранится) Цитата:
![]() Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Адрес переменной | _-Re@l-_ | Паскаль, Turbo Pascal, PascalABC.NET | 16 | 30.12.2010 12:02 |
Адрес переменной | _-Re@l-_ | Общие вопросы .NET | 3 | 25.12.2010 16:58 |
Адрес переменной | kostyan777 | Общие вопросы C/C++ | 4 | 11.07.2010 22:16 |
Адрес переменной: Вопрос | Black-Sparkle | Общие вопросы C/C++ | 11 | 11.08.2009 14:59 |
Адрес переменной | Pedro | Общие вопросы Delphi | 11 | 16.12.2008 13:03 |