我读了this个问题,对我的代码处理方式感到非常困惑。如果我的阅读正确,我的代码根据当前标准是不确定的。以下是我需要的一切,我真的找不到更好的方法来做到这一点。使用OR左移绝对不是我想要的。这样离开就好了吗?
编辑:是的,我在设置n
而不是n的值后正在阅读rbg
。
union Pixel {
unsigned char rgb[4];
uint32_t n;
Pixel():
n(0) {}
};
答案 0 :(得分:2)
这是C ++的一个部分,它比检查标准更容易检查编译器正在做什么。据我所知,大多数编译器仍然按照您的预期进行(MSVC,GCC,CLANG)。你在想一些深奥的东西吗?
在以下链接中,提到Sun C ++编译器不起作用: