Здравствуйте, vdimas, Вы писали:
V>>>Двухфакторная инициализация — статическая и динамическая.
ЕМ>>CRT не является безусловно необходимым для этого.
V>Тогда будет UB. ))
Да и хрен бы с ним.
V>ты тогда не можешь полагаться на спецификации языка.
Уж где-где, а во встроенных системах, где без регулярной ревизии порождаемого кода можно словить разнообразных глюков, полагаться на общие спецификации языка — последнее дело.
V>Для динамической фазы инициализации CRT требуется
Если Вы об инициализации неконстантным выражением, то да. Я даже не подумал, что кто-то в здравом уме может использовать такое на МК.
V>программисту удобнее, когда численно совпадающие адреса данных и программы на самом деле смотрят в разную память.
Далеко не всегда удобнее — с теми же табличными функциями.
V>Считай, что это чуть другой образ мышления.
Я сам почти никогда не использую статических переменных, требующих инициализации во время выполнения.
Но константные таблицы использовать люблю.
V>Одно плохо — тебе недоступна возможность явного вызова этой ф-ии, этим занимается CRT.
Во многих реализациях ее вполне себе можно вызвать, объявив прототип. Но лучше бы такие вещи включать в спецификацию и давать возможность управления. Разбить все служебные функции CRT на группы, выделить каждой определенные функции, тогда весь стартап сведется к их последовательному вызову, и нетрудно будет заменить как любую из функций, так и стартап.
V>Тут во всей красе проявляется то правило инженерии, что самое общее решения является наихудшим для каждого конкретного случая. ))
Я об этом уже который год толкую местным ревнителям чистоты и стандартности, но у них такие идеи порождают лишь неподдельное изумление.
V>нет такой возможности в языке, забудь. ))
"Жопа есть, а слова — нет?"
V>если архитектура не позволяет непосредственно читать байты из адресного пространства команд, то ты через макросы прошиваешь команду сложения рабочего регистра с константой (или загрузки константы в регистр) + операция ret. Тогда обращение к таблице вырождается в call c предвычисленным смещением.
Все бы хорошо, но вот быстродействие такого...