LINUX.ORG.RU

История изменений

Исправление fsb4000, (текущая версия) :

Вопрос, как правильно передавать в процедуры упакованные элементы для их модификации?

Не использовать упакованные элементы - это самое правильное.

Если тебе просто заткнуть компилятор, то просто добавляй каст (void*), а потом на нужный тип:

(int *)(void *)&my_packed_struct.some_int

Но это будет работать на Intel/AMD, а на всяких arm будет ошибка шины скорее всего…

Если нужно чтобы работало везде и нужно использовать упакованные структуры, то создавай обычную структуру, копируй туда начальные значения из упакованной, потом в функцию передавай обычную структуру, потом копируй измененные данные в упакованную структуру, и надейся что компилятор это более менее оптимизирует.

Исходная версия fsb4000, :

Вопрос, как правильно передавать в процедуры упакованные элементы для их модификации?

Не использовать упакованные элементы - это самое правильное.

Если тебе просто заткнуть компилятор, то просто добавляй каст (void*), а потом на нужный тип:

(int *)(void *)&my_packed_struct.some_int

Но это будет работать на Intel/AMD, а на всяких arm будет ошибка шины скорее всего…