8字节数据直接赋值问题(unsigned long long)

版权声明:本文为博主原创文章,欢迎转载,请尊重原创,转载注明链接。 https://blog.csdn.net/qqliyunpeng/article/details/79822039

1. 问题呈现

假设有一个内存空间,buf[200],我们对其用指针赋值:

unsigned long long item = 100;

*(unsigned long long *)buf = item;

看似没问题,但是实际中移植性比较差,当我在64位的ubuntu中运行此段代码是没有问题的。但是当我们把此代码在32位的嵌入式系统中运行,报 < Bus error> 的错误。

2. 解决

当遇到此问题时,memcpy是个好的选择。

猜你喜欢

转载自blog.csdn.net/qqliyunpeng/article/details/79822039