ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
30 апреля
992975 Топик полностью
fk0, легенда (08.04.2020 13:50, просмотров: 655) ответил LightElf на А ты упертый :) Но блох ты ловишь не там. Разложиться по-другому может, особенно на архитектурах без 16-битных операций (типа ARMv4) - компилятор выровняет uint16_t на 32 бита. А вот как раз получить раскладку с int32 не на 32-битной границе - это надо сильно постараться. Ну и использование указателей на поля структуры, вместо указателя на структуру целиком - это путь к успеху.
Отлично. Но ты ж сам доказал, что говнокод. На ARMv4. У тебя там что лежит за 16-битным значением окажется не выровненным и на него нельзя будет взять указатель. А сериализация ручками -- она всегда работает, надежно железобетонно. И использование указателей на поля структуры -- нормальный способ, иначе как писать абстрактные функции, а не функции работающие именно с такой структурой. Хотя конечно скалярные значения нормальные люди возвращают вовсе по-значению, но случаи они 

разные бывают.

[ZX]