数据类型之共用体

来源:互联网 发布:图灵机原理 知乎 编辑:程序博客网 时间:2024/06/05 20:03

共用体

共用体是构造数据类型的一种

共用体也常被称为联合体


共用体的实质

共用体是单个存储单位上的元素集合

注意:元素都在一个存储单位上,这个存储单位的大小是最大数据类型的大小

共用体的作用

我们用共用体并不是内存空间不够用

用共用体时,主要利用”元素都存储到一个存储单位上”这一特性


共用体的组成

  • 共用体是依靠不同的数据类型的组合创建起来的,数组的元素可以是之下的任何几种的组合

    1. 整型
    2. 浮点型
    3. 字符型
    4. 指针型
    5. 枚举型
    6. 数组
    7. 结构体
    8. 共用体

共用体的声明

/*共用体的声明不分配内存空间*/union hello{//共用体类型名为 struct hello  int hello;//共用体成员名可以与共用体类型名中的第二个标识符相同  char c[100];  struct hello * p;//共用体可以包含该结构体指针,但是不可以包含该共用体 ,一般不包括指针,嗯嗯,我还没见过,就是酱紫};

共用体变量的定义

/*结构体的定义分配内存空间*/union hello hello;

共用体使用示例

/*检查大小端序*/#include <stdio.h>union hiahia{    int i;    char c;} b;int main(int argc, const char *argv[]){    b.i = 1;    if(b.c){        printf("this machine follows the little endian \n");    }else{        printf("this machine follows the big endian \n");    }    return 0;}
/*另外,封装两个检查大小端的函数,随变找一个用*//**返回值:大端序返回1,小端序返回0*/static int IsBigEndian(void){    union hiahia{        int i;        char c;    } b;    b.i = 1;    return !b.c;}/**返回值:大端序返回1,小端序返回0*/static int IsBigEndian(void){    int i = 1;    return !*(char*)&i;}
0 0
原创粉丝点击