我正在try 创建一个函数,将uint16_t
转换为uint8_t[2]
在C中.
下面的代码已经过测试,但即使在阅读了反汇编之后,我也不确定它是否可移植或安全.
static inline uint8_t* write_u16(uint16_t in, uint8_t out[2], ArchEndian_t endian) {
if (NATIVE_ENDIAN != endian){
in = byte_swap(in);
}
*((uint16_t*)out) = in; //< Is this portable and safe?
return out;
}
我应该如何考虑用C语言进行类型转换?