[英]Memory location of bit-fields
從C ++ 14標准的2014年11月工作草案開始:
§1.7 6
c ISO / IEC N4296 5 [示例:聲明為
struct {
char a;
int b:5,
c:11,
:0,
d:8;
struct {int ee:8;} e;
}
包含四個單獨的存儲位置:字段a和位字段d和e.ee分別是單獨的存儲位置,可以同時修改而不會互相干擾。 位域b和c一起構成第四存儲位置。 不能同時修改位域b和c,但是可以修改b和a。 —結束示例]
我假設:0
充當各種分隔符,這就是為什么d
具有單獨的存儲位置而b
和c
沒有單獨的存儲位置的原因。 但是,我不明白這是什么意思
共同構成第四個內存位置
b
和c
是union
嗎? 例如,相當於
union {
int b:5;
int c:11;
};
不,他們沒有像在union
示例中那樣分享任何東西。
為了考慮存儲位置,它們只是一個單元。
換句話說,以下是示例中的位(可能)
AAAAAAAA BBBBBCCCCCCCCCCC DDDDDDDD EEEEEEEE (ee sharing e)
這些空格用於顯示內存位置,並且不會占用內存中的任何空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.