簡體   English   中英

位域的存儲位置

[英]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具有單獨的存儲位置而bc沒有單獨的存儲位置的原因。 但是,我不明白這是什么意思

共同構成第四個內存位置

bcunion嗎? 例如,相當於

union {
    int b:5;
    int c:11;
};

不,他們沒有像在union示例中那樣分享任何東西。

為了考慮存儲位置,它們只是一個單元。

換句話說,以下是示例中的位(可能)

AAAAAAAA BBBBBCCCCCCCCCCC DDDDDDDD EEEEEEEE (ee sharing e)

這些空格用於顯示內存位置,並且不會占用內存中的任何空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM