NDK基礎:結構體 共用體

結構體

c語言中的結構體,就好比是java中的bean對象。

是一種可自定義的可用的數據類型,它允許存儲不同類型的數據項。

定義結構體,需要使用struct關鍵字。

//使用struct關鍵字申明一個結構體
struct Book{
    char name;
    int page;
};

//申明一個Book,並賦值,無需像java那樣new
Book mBook;
strcpy(mBook.name, “abcde”);
mBook.page=300;

當然,也可以直接在結構體中申明變量。

struct Book{
    char name[50];
    int page;
}sBook;//直接申明一個變量

strcpy(sBook.name, “sssss”);
sBook.page=900;

更便捷的是直接申明的時候傳入數據。

struct Book{
    char name[50];
    int page;
}sBook={“aaa”,100};

printf(“book name %s ,page is %d \n”,sBook.name,sBook.page);

共用體

共用體有點類似結構體,不過他是多個變量共用一個結構體,他同時只能存在一個變量的值。

好處就是節省了內存空間。內存大小就是結構體中佔最大內存的那個變量的。

他使用union關鍵字來表示共用體。

例如:

union Bee {
    int a;
    char c[30];
} bbb;

int佔2個字節,char在這裏申明佔30個字節,那麼這個共用體就佔30個字節空間。

bbb.a=10;
    printf("bbb.a is %d \n”,bbb.a);
    strcpy(bbb.c ,”jijijijij”);
    printf(“bbb.a is %d \n”,bbb.a);
    printf(“bbb.c is %s \n",bbb.c);

log日誌
bbb.a is 10 
bbb.a is 1768581482 
bbb.c is jijijijij 

當首次給a賦值,共用體的值是10;
給c賦值後,共用體的a值就不存在了,只有c的值存在;
所以,當有n個變量,可他們同時只存在一個,那麼就可以使用共用體,還能節省內存空間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章