[英]Is reading an unsigned char array through an unsigned integer undefined and thus not safe?
我读了这个问题,对自己与代码的处理感到非常困惑。 如果我的阅读是正确的,则根据当前标准,下面的代码未定义。 下面是我需要的一切,而我确实找不到更好的方法来做到这一点。 使用OR左移绝对不是我想要的。 这样离开就可以了吗?
编辑:是的,我正在读n
设定的值之后rbg
和不是n。
union Pixel {
unsigned char rgb[4];
uint32_t n;
Pixel():
n(0) {}
};
这是C ++的组成部分之一,比遵循标准更容易检查编译器在做什么。 据我所知,大多数编译器仍然可以完成您期望的操作(MSVC,GCC,CLANG)。 你在想什么深奥的东西吗?
在以下链接中,提到了Sun C ++编译器不起作用:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.