ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
1020541 Топик полностью
AlexBi (24.07.2020 09:53, просмотров: 487) ответил fk0 на Говнокода. И не такие уж и тысячи. Практически всё что завелось не на x86 такого говнокода не содержит. Потому, что и MIPS, и ARM -- это аппаратное исключение при невыравненном обращении и дальше либо фиксация ошибки, либо программная эмуляция команды с невыравненным чтением-записью (очень не быстро...) И даже на современном x86 словить исключение при невыравненном обращении -- запросто (векторные инструкции). Ещё раз, повторю, упакованные структуры -- НЕ СТАНДАРТНАЯ ХЕРНЯ.
Все же тут похоже на глюк компилятора. PACKED это такой же модификатор структуры как volatile или const которые должны распространяться на все члены структуры. Соответственно, когда делается &a.b на выходе должен получаться указатель с соответствующим модификатором. А тут модификатор PACKED потерялся, остальное последствия. Но я не большой знаток.