C 联合体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 联合体相关的知识,希望对你有一定的参考价值。

联合体和结构体最大的区别是:

结构体各个成员都有自己的内存空间

联合体所有的成员共用同一个内存空间,空间的大小取决于所有成员中占用内存空间最大的那个。

放一段代码:

#include <stdio.h>
#include <stdlib.h>
typedef union _m
{
    int c;
    char name[20];
}M;
int main()
{
    system("color 2E");
    printf("联合体 M 占用的内存大小 : %d\n" , sizeof(M));
    return 0;
}

其结果为:

技术分享

实际上可以这么理解 : union在同一时间只能使用其所有成员中的一个成员。

如果使用union , 赋值一个成员 , 因为union中所有的成员都使用同一块内存空间 , 实际上其他成员的内存内容也改了 , 再去使用其他成员的话,值都是乱七八糟的。

本文出自 “Better_Power_Wisdom” 博客,请务必保留此出处http://aonaufly.blog.51cto.com/3554853/1918601

以上是关于C 联合体的主要内容,如果未能解决你的问题,请参考以下文章

C语言代码片段

c_cpp Atlas300代码片段

c_cpp Robolution基本代码片段

尽管未使用接口或联合,但 readFragment 导致 IntrospectionFragmentMatcher 错误

[linux][c/c++]代码片段02

iphone / Objective c的最佳代码片段网站是啥[重复]