美文网首页
NDK基础:结构体 共用体

NDK基础:结构体 共用体

作者: space0o0 | 来源:发表于2019-11-06 10:41 被阅读0次

    结构体

    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个变量,可他们同时只存在一个,那么就可以使用共用体,还能节省内存空间。

    相关文章

      网友评论

          本文标题:NDK基础:结构体 共用体

          本文链接:https://www.haomeiwen.com/subject/sgzybctx.html