c语言共用体有什么用,共有体和枚举类型有什么作用啊

1,共有体和枚举类型有什么作用啊枚举类型是派生自System.Enum的一种独特的值类型,用于声明一组命名的常数 。每种枚举类型均有一种基础类型 , 此基础类型可以使除char类型以外的任何整型 。在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中 。也就是使用覆盖技术,几个变量互相覆盖 。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体.【c语言共用体有什么用,共有体和枚举类型有什么作用啊】
2,关于C语言的公用体有什么好处吗一般好像是用不到,不过听某些高手说在写底层时可以用来节省空间是呀,用不太到呀 。。如果我们要建立一个学生档案,那最方便的就可以以学生为一个整体 ,  一个学生信息包含了(姓名,年龄,身高 , 体重,等),用除了共同体以外的结构,很难创建出一个合集,因为姓名与年龄等不是同种类型的数据(一个可能是字符串,一个是数值) 。所以通常在需要把类型不同的信息整合到一个整体时,使用共同体
3,能给我介绍一下结构体共用体位运算文件他们在C语言写程结构体 其实跟数组一样连续的一段内存存储结构体里得东西 用起来和变量一样比如 struct a int b;}aa; 要用b 就是 aa.b 共用体也差不多不过内存存储空间是共用最大元素的空间位运算就是操作位啊 , a>>1就是a的2进制往右移1位文件就是你输入输出的东西啊 比如你打印了12345 你想要写在txt里就是要用文件函数TCPL这东西你都需要看书啊 。看高深点的书,不需要看懂大概看看就行了 。打字太多啦 。结构体 数据结构 链表文件 打开 写入替换移位上网查或找书
4,c语言中的共用体有什么用谁能举一个形象的例子吗实际的例子有,形象的例子没有socket网络通信中的一个结构体struct in_addr{ union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; //An IPv4 address formatted as four u_chars. struct { u_short s_w1,s_w2; } S_un_w; //An IPv4 address formatted as two u_shorts u_long S_addr;//An IPv4 address formatted as a u_long } S_un; #define s_addr S_un.S_addr};IP地址,可以把它作为一个整数处理 , 也可以作为两个short处理,也可以作为4个Byte处理如果我们要建立一个学生档案,那最方便的就可以以学生为一个整体,一个学生信息包含了(姓名,年龄,身高,体重,等),用除了共同体以外的结构,很难创建出一个合集,因为姓名与年龄等不是同种类型的数据(一个可能是字符串,一个是数值) 。所以通常在需要把类型不同的信息整合到一个整体时,使用共同体共用体就比如学校里的成绩单,比如我想记录一次数学成绩,写一张单子,要语文,写一张单子,而那个单子就是共用体中要填写的属性,就是比如一张成绩单里的姓名 成绩 然后你只要调用后填写相应的内容,比如这样讲 , 属性你填好了,姓名:xx 成绩:yy 这就是共用体的功能,然后你讲xx和yy通过共用体用进去就好了 5 , 关于c语言的共用体在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中 。也就是使用覆盖技术,几个变量互相覆盖 。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体 。注:在某些书籍中可能称之为“联合体”,但是“共用体”更能反映该类型在内存的特点 。共用体类型数据的特点1.同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬间只能存放其中的一种,而不是同时存放几种 。换句话说 , 每一瞬间只有一个成员起作用,其他的成员不起作用 , 即不是同时都在存在和起作用 。2.共用体变量中起作用的成员是最后一次存放的成员,在存入一个新成员后 , 原有成员就失去作用 。3.共用体变量的地址和它的各成员的地址都是同一地址 。4.不能对共用体变量名赋值,也不能企图引用变量名来得到一个值 。5.共用体类型可以出现在结构体类型的定义中,也可以定义共用体数组 。反之,结构体也可以出现在共用体类型的定义中 , 数组也可以作为共用体的成员 。共同体(联合体)的特点是所有成员变量共享同一块内存单元 。另外(1)当各成员长度不相等 时,内存块的大小由 最长的决定 。-- 你的几个成员长度相等,无此问题 。(2)数据存放时涉及字节次序 , 分大端序和小端序 。windows 用小端序 。小端序:i[2]的 排列 是 i[0] 2字节 , i[1] 下面的2字节i[0] 里2个字节 低字节在前,高字节在后 0x0039 排列成 0x39 0x00i[1] 里2个字节 低字节在前,高字节在后 0x0038 排列成 0x38 0x00于是4个字节内容 是0x39 0x00 0x38 0x00翻译成 long int k:k 的4字节 排列 是:最低字节,低字节,高字节 , 最高字节(0x39 0x00 0x38 0x00)输出数据时要拼成:最高字节 高字节 低字节 最低字节也就是0x00 0x38 0x00 0x39输出为0x00380039(输出格式 0x%08x)或 380039(输出格式 %x)大端序从略 。

    推荐阅读