Câu hỏi này về cơ bản là một nửa thứ hai để khác của tôi QuestionChuyển đổi một giá trị uint16 thành một mảng uint8 [2]
Làm thế nào tôi có thể chuyển đổi một giá trị uint16, vào một uint8 * mảng mà không có một vòng lặp và tránh các vấn đề về cuối.
Về cơ bản tôi muốn làm một cái gì đó như thế này:
UINT16 value = 0xAAFF;
UINT8 array[2] = value;
Kết quả cuối cùng của việc này là để lưu trữ giá trị vào một mảng uint8 trong khi tránh chuyển đổi endian.
UINT8 * mArray;
memcpy(&mArray[someOffset],&array,2);
Khi tôi chỉ đơn giản là làm memcpy với giá trị uint16, nó chuyển đổi để ít về cuối nhỏ mà di tích đầu ra. Tôi đang cố gắng tránh sử dụng các hàm chuyển đổi cuối cùng, nhưng nghĩ rằng tôi có thể không may mắn.
Điều này không hoạt động vì nó vẫn nhạy cảm với tính cuối cùng (về cơ bản, nó giống như 'memcpy' trong câu hỏi). –