我想将一个unsigned char
数组转换为uint32_t
,但每次都得到不同的结果:
unsigned char buffer[] = {0x80, 0x00, 0x00, 0x00};;
uint32_t num = (uint32_t*)&buffer;
现在,我一直收到这个警告:
警告:初始化使指针成为整数而不需要强制转换
当我将num
更改为*num
时,我不再收到该警告,但实际上这并不是真正的问题(更新:嗯,现在我想起来了,它们可能是相关的),因为每次运行代码都会产生不同的结果。其次,一旦正确转换num
,应该是128
,但如果我需要更改缓冲区的字节顺序,我可以自己处理,我认为。
谢谢!
uint32_t num = *(uint32_t*)buffer;
来获取数字。 - Neil