C語言 共用體

2021-08-28 05:09:45 字數 932 閱讀 9836

共用體

typedef union

strudent;

void fun_union()

列印:sizeof(studend)=2,data[0]=0xfe,data[1]=0xff,列印出0xff,暫時沒有理解(已理解),應該列印出0才對啊!如果jack.number=2;那麼列印:sizeof(studend)=2,data[0]=0x2,data[1]=0,這個能理解。

分析data[1]=0xff原因:

-2是unsigned short型別,占用2個位元組:

[-2] = [1000 0000 0000 0010]原 = [1111 1111 1111 1101]反 = [1111 1111 1111 1110]補 

資料在儲存的補碼形式表示為:0xfffe,在小端模式下,data[0]取低8位就是0xfe,data[1]取高8位就是0xff。

求數能值的二進位制中1的位數

通過&實現

int fun_get_bin1_num(int x)

return count;

}

刪除字串所有空格

不用額外的空間實現

void fun_del_space(char *pstr)

++pstr;

} *ptmp = '\0';

}

巨集定義實現swap(x,y)

#define swap(x,y) x=x+y;y=x-y;x=x-y;//算術演算法

#define swap(x,y) a=a^b;b=a^b;a=a^b; or a^=b^=a;//異或,只能對int,char型別

C語言 共用體

共用體 union define crt secure no warnings include include include union 共用體,構造資料型別,也叫聯合體,用途 十幾個不同型別的變數共佔一段記憶體 相互覆蓋 共用體在型別定義的時候並不分配記憶體,定義共用體變數的時候才分配記憶體 u...

C語言共用體

小甲魚共用體 1 用typedef定義型別 用typedef宣告新的型別名來代替已有的型別名 宣告integer為整型 typedef int integer 宣告結構型別 typedef struct date 宣告num為整型陣列型別 typedef int num 100 宣告string為字...

C語言 共用體

共用體是一種特殊的資料型別,允許您在相同的記憶體位置儲存不同的資料型別。您可以定義乙個帶有多成員的共用體,但是任何時候只能有乙個成員帶有值。共用體提供了一種使用相同的記憶體位置的有效方式。為了定義共用體,您必須使用union語句,方式與定義結構類似。union 語句定義了乙個新的資料型別,帶有多個成...