C

特征

在结构体(变量)中,结构的各成员顺序排列存储,每个成员都有自己独立的存储位置。联合(union)变量的所有成员共享同片存储区/内存。因此联合变量每个时刻里只能保存它的某一个成员的值。

  • union中可以定义多个成员,union的大小由最大的成员的大小决定;
  • union成员共享同一块大小的内存,一次只能使用其中的一个成员;
  • 对union某一个成员赋值,会覆盖其他成员的值(但前提是成员所占字节数相同,当成员所占字节数不同时只会覆盖相应字节上的值,比如对char成员赋值就不会把整个int成员覆盖掉,因为char只占一个字节,而int占四个字节);
  • union量的存放顺序是所有成员都从低地址开始存放的

内存使用

union Data { int i; double x; char str[16]; };

&ref(): File not found: "union_memory.jpg" at page "+C+联合体";

union Data var, myData[100];

如果想获得联合的空间大小,可以使用 sizeof 运算符。对上例来说,sizeof(var)会返回 16,而 sizeof(myData)则返回 1600。

uunion data
{
    char n;
    float f;
};
union data u1 = {3}; //只有u1.n被初始化


セシウム137を97.7%吸着

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:33:00 (1628d)

yVoC[UNLIMITȂ1~] ECirŃ|C Yahoo yV LINEf[^[Ōz500~`I


z[y[W ̃NWbgJ[h COiq 萔O~ył񂫁z COsیI COze