簡體   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