Да почему шутка? Но: как понял задачу так и сделал, если не то - пардон, у меня бывает.
Самый простой вариант для С99 - записать массив наоборот.
#define MY_SIZEOF (4) /*на основе массива[8] создать массивчик[4]*/
#define ITEM(x) ((x)>=MY_SIZEOF)?(0):(x)
uint8_t myArray[/*MY_SIZEOF*/] = {
[ITEM(7)]=200,
[ITEM(6)]=190,
[ITEM(5)]=180,
[ITEM(4)]=170,
[ITEM(3)]=160,
[ITEM(2)]=150,
[ITEM(1)]=140,
[ITEM(0)]=130
};
Второй вариант - таки Х-макросами. Он подобен, там не надо массив писать наоборот, но писанины чуть побольше.