?
uint8_t v1, v2;
twi_read_register(SLA, REG_MSB, &v1, NULL);
twi_read_register(SLA, REG_LSB, &v2, NULL);
data = ((uint16_t)v1<<8)|v2;
data , twi_read_register . , , .
, data , . , , , , . , , .
, .
#ifdef BIGENDIAN
typedef struct
{ uint8_t msb, lsb;
} uint16_as_uint8_t;
#else
typedef struct
{ uint8_t lsb, msb;
} uint16_as_uint8_t;
#endif
, union
union
{ uint16_as_uint8_t as8;
uint16_t as16;
};
, C89, union , . C99 ( ) . C89 (char*), .
, , , - . , . , , , , , , , , . .