Цитата(Monet @ Mar 31 2010, 01:49)

Возникла задача следующего характера: есть число типа int16_t, в WinAVR необходимо создать массив из двух элементов unsigned char, первый элемент - младший байт числа int16_t, а второй - соответственно старший байт.
Еще вариант:
Код
union
{
int16_t value;
int8_t array[2];
} slon;
slon.value = 12345;
int8_t low = slon.array[0];
int8_t high = slon.array[1];
Цитата(Taradov Alexander @ Mar 31 2010, 02:04)

int16_t num;
unsigned char arr[2];
arr[0] = num & 0xff;
arr[1] = (num >> 8) & 0xff;
Или не портабельный вариант:
*((int16_t *)arr) = num;
Первый вариант тоже не полностью портабельный (в случае влияния endian).