Questa domanda è fondamentalmente la seconda metà di mia altra QuestionConversione di un valore UINT16 in un array UINT8 [2]
Come posso convertire un valore UINT16, in un UINT8 * array senza un ciclo ed evitando problemi di Endian.
Fondamentalmente voglio fare qualcosa di simile:
UINT16 value = 0xAAFF;
UINT8 array[2] = value;
Il risultato finale di questo è di memorizzare il valore in una matrice di UINT8 evitando la conversione endian.
UINT8 * mArray;
memcpy(&mArray[someOffset],&array,2);
Quando faccio semplicemente memcpy con il valore UINT16, lo converte in little-endian che rovina l'uscita. Sto cercando di evitare l'uso di funzioni di conversione endian, ma penso che potrei essere solo sfortunato.
Questo non funziona perché è ancora sensibile alle endianness (in pratica, si fa la stessa cosa come il 'memcpy' in questione). Il tag di domanda –