繁体   English   中英

通过无符号整数读取无符号字符数组是不确定的,因此不安全吗?

[英]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 ++编译器不起作用:

http://blog.regehr.org/archives/959

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM