то у меня верхний байт всегда нулевый
Можете в псевдокоде выразить, что вы хотите, пожалуйста?
char byte1, byte2; short int s; byte1 = s; byte2 = s >> 8;
Можно сделать int8_t*, чтобы обратиться к "первому", то просто достаточно разменовать, ко второму - арифметика указателей. По идее сработает
Лучше (unsigned) char*, в таком случае. Гарантий соответствия для std::uint8_t им нет, а другими нельзя.
Как понять "гарантия соответствия"?
Элиаса перечисленным типам.
https://godbolt.org/z/7qMerfeMP
Обсуждают сегодня