[英]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.