ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1042536 Топик полностью
il-2 (07.10.2020 09:02, просмотров: 179) ответил Aleksey_75 на когда 2 литра мало , а 4 много ))) как "замутить" переменную на 3 байта ? )))
Я бы сделал так (это идея, пишу набело, поэтому могут быть ошибки): 
#define UINT24_DECLARE(name, ...) __VA_ARGS__ uint16_t lo16_##name; __VA_ARGS__ uint8_t hi8_##name
#define UINT24_SET(name, value)   do { uint32_t d = value; lo16_##name = d; hi8_##name = d >> 16; } while(0)
#define UINT24_GET(name)          (((uint32_t)hi8_##name << 16) | lo16_##name)

UINT24_DECLARE(array[200], const);

main()
{
  int i = 0;
  do { UINT24_SET(array[i], i); } while(++i != 200);
}