реклама на сайте
подробности

 
 
> Последовательность вызова конструкторов, глобальных объектов при инициализации (ARM)
Andy Mozzhevilov
сообщение Sep 23 2010, 07:33
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Вопрос, можно ли как-то средствами расширения языка, а также параметрами и скриптами линкера (IAR ARM 5.xx) задать посделовательность инициализации (вызовов конструкторов) глобальных объектов?
То есть, например:
Код
class TSlon
{
....
};

class TMamont
{
....
};

TSlon    Slon;   // Этот объект должен быть инициализирован первым при запуске
TMamont  Mamont; // Этот объект должен быть инициализирован вторым при запуске



--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Sep 23 2010, 08:21
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Andy Mozzhevilov @ Sep 23 2010, 14:33) *
Вопрос, можно ли как-то средствами расширения языка, а также параметрами и скриптами линкера (IAR ARM 5.xx) задать посделовательность инициализации (вызовов конструкторов) глобальных объектов?

Если объекты объявляются в одной единице трансляции, то гарантируется тот порядок их создания, в котором они объявлены.

TSlon slon;
TMamont mamont;

slon будет создан первым, mamont за ним.

Если объекты объявлены в разных единицах трансляции, то тут порядок создания не гарантируется. Избавиться от зависимости создания в этом случае можно дополнительными ухищрениями - например, с помощью singleton'а.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 08:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016