问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言中的共用体是什么?128

发布网友 发布时间:2023-11-05 06:25

我来回答

5个回答

热心网友 时间:2024-10-07 16:46

所谓共用体类型是指将不同的数据项组织成一个整体,它们在内存中占用同一段存储单元。其定义形式为:
union 共用体名
{成员表列};

union data
{
int a ;
float b;
doublec;
chard;
}obj;
该形式定义了一个共用体数据类型union data ,定义了共用体数据类型变量obj。共用体数据类型与结构体在形式上非常相似,但其表示的含义及存储是完全不同的。先让我们看一个小例子。

union data /*共用体*/
{
int a;
float b;
double c;
char d;
}mm;
struct stud /*结构体* /
{
int a;
float b;
double c;
char d;
};
main( )
{
struct stud student;
printf("%d,%d",sizeof(struct stud),sizeof(union data));
}
运行程序输出:
15,8
程序的输出说明结构体类型所占的内存空间为其各成员所占存储空间之和。而形同结构体的共用体类型实际占用存储空间为其最长的成员所占的存储空间。
对共用体的成员的引用与结构体成员的引用相同。但由于共用体各成员共用同一段内存空间,使用时,根据需要使用其中的某一个成员。从图中特别说明了共用体的特点,方便程序设计人员在同一内存区对不同数据类型的交替使用,增加灵活性,节省内存。

可以引用共用体变量的成员,其用法与结构体完全相同。若定义共用体类型为:
union data /*共用体*/
{
int a;
float b;
double c;
char d;
}mm;
其成员引用为:mm.a,mm.b,mm.c,mm.d 但是要注意的是,不能同时引用四个成员,在某一时刻,只能使用其中之一的成员。

main( )
{
union data
{
int a;
float b;
double c;
char d;
}mm;
mm.a=6;
printf("%d\n",mm.a);
mm.c=67.2;
printf("%5.1lf\n", mm.c);
mm.d='W';
mm.b=34.2;
printf("%5.1f,%c\n",mm.b,mm.d);
}
运行程序输出为:
6
6 7.2
3 4.2,=
程序最后一行的输出是我们无法预料的。其原因是连续做mm.d='W';mm.b=34.2;两个连续的赋值语句最终使共用体变量的成员mm.b所占四字节被写入34.2,而写入的字符被覆盖了,输出的字符变成了符号“ =”。事实上,字符的输出是无法得知的,由写入内存的数据决定。
例子虽然很简单,但却说明了共用体变量的正确用法。

热心网友 时间:2024-10-07 16:46

共用体一般指联合体,作用如下:

1、节省内存

有两个很长的数据结构,不会同时使用,用结构体的话,只占用最长的那个数据结构所占用的空间,就足够了。

2、做某些转换用

union{char a[8];double x;};

x=20.8;

cout<<hex<<a[0]<<“ ”<<a[1]<<…<<endl;

扩展资料:

结构体和共用体

结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。

结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。

共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。

共用体也是一种自定义类型,可以通过它来创建变量,

参考资料来源:百度百科-共用体

热心网友 时间:2024-10-07 16:47

定义  在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。注:在某些书籍中可能称之为“联合体”,但是“共用体”更能反映该类型在内存的特点。
一般定义形式  union 共用体名  {  成员表列  }变量表列;
简单示例  union data

  {

  int i;

  char ch;

  float f;

  }a,b,c;

编辑本段共用体变量的引用方式  只有先定义了共用体变量才能在后续程序中引用它,有一点需要注意:不能引用共用体变量,而只能引用共用体变量中的成员。

  简单示例

  union data

  {

  int i;

  char ch;

  float f;

  }a,b,c;

  对于这里定义的共用体变量a,b,c。下面的引用方式是正确的:

  a.i (引用共用体变量中的整型变量i)

  a.ch (引用共用体变量中的字符变量ch)

  a.f (引用共用体变量中的实型变量f)

  而不能引用共用体变量,例如:

  printf("%d",a); <==这种用法是错误的。

  因为a的存储区内有好几种类型的数据,分别占用不同长度的存储区,这些共用体变量名a,难以使系统确定究竟输出的是哪一个成员的值。

  而应该写成

  printf("%d",a.i); 或 printf("%c",a.ch);

编辑本段共用体类型数据的特点  1.同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬间只能存放其中的一种,而不是同时存放几种。换句话说,每一瞬间只有一个成员起作用,其他的成员不起作用,即不是同时都在存在和起作用。

  2.共用体变量中起作用的成员是最后一次存放的成员,在存入一个新成员后,原有成员就失去作用。

  3.共用体变量的地址和它的各成员的地址都是同一地址。

  4.不能对共用体变量名赋值,也不能企图引用变量名来得到一个值,并且,不能在定义共用体变量时对它进行初始化。

  5.不能把共用体变量作为函数参数,也不能是函数带回共用体变量,但可以使用指向共用体变量的指针。

  6.共用体类型可以出现在结构体类型的定义中,也可以定义共用体数组。反之,结构体也可以出现在共用体类型的定义中,数组也可以作为共用体的成员。

热心网友 时间:2024-10-07 16:47

共同体是指成员共同使用一段存储区域,共同体占用内存大小决定于所占内存最大的那个成员,但是实际使用的内存会小于等于共同体所占内存大小

热心网友 时间:2024-10-07 16:48

union

例如定义一个union

union {
UCHAR S_un_b;
USHORT S_un_w;
ULONG S_addr;
} S_un;

S_un s;
你可以用s.S_un_b, s.S_un_w, S_addr访问
实际上访问的是同一块内存区域,但由于数据类型不同,所以得到的结果可能不一样。
修改其中一个数据,其他的数据都可能会改变。
union所占的内存大小有最大的那个数据类型决定。

热心网友 时间:2024-10-07 16:46

所谓共用体类型是指将不同的数据项组织成一个整体,它们在内存中占用同一段存储单元。其定义形式为:
union 共用体名
{成员表列};

union data
{
int a ;
float b;
doublec;
chard;
}obj;
该形式定义了一个共用体数据类型union data ,定义了共用体数据类型变量obj。共用体数据类型与结构体在形式上非常相似,但其表示的含义及存储是完全不同的。先让我们看一个小例子。

union data /*共用体*/
{
int a;
float b;
double c;
char d;
}mm;
struct stud /*结构体* /
{
int a;
float b;
double c;
char d;
};
main( )
{
struct stud student;
printf("%d,%d",sizeof(struct stud),sizeof(union data));
}
运行程序输出:
15,8
程序的输出说明结构体类型所占的内存空间为其各成员所占存储空间之和。而形同结构体的共用体类型实际占用存储空间为其最长的成员所占的存储空间。
对共用体的成员的引用与结构体成员的引用相同。但由于共用体各成员共用同一段内存空间,使用时,根据需要使用其中的某一个成员。从图中特别说明了共用体的特点,方便程序设计人员在同一内存区对不同数据类型的交替使用,增加灵活性,节省内存。

可以引用共用体变量的成员,其用法与结构体完全相同。若定义共用体类型为:
union data /*共用体*/
{
int a;
float b;
double c;
char d;
}mm;
其成员引用为:mm.a,mm.b,mm.c,mm.d 但是要注意的是,不能同时引用四个成员,在某一时刻,只能使用其中之一的成员。

main( )
{
union data
{
int a;
float b;
double c;
char d;
}mm;
mm.a=6;
printf("%d\n",mm.a);
mm.c=67.2;
printf("%5.1lf\n", mm.c);
mm.d='W';
mm.b=34.2;
printf("%5.1f,%c\n",mm.b,mm.d);
}
运行程序输出为:
6
6 7.2
3 4.2,=
程序最后一行的输出是我们无法预料的。其原因是连续做mm.d='W';mm.b=34.2;两个连续的赋值语句最终使共用体变量的成员mm.b所占四字节被写入34.2,而写入的字符被覆盖了,输出的字符变成了符号“ =”。事实上,字符的输出是无法得知的,由写入内存的数据决定。
例子虽然很简单,但却说明了共用体变量的正确用法。

热心网友 时间:2024-10-07 16:47

共用体一般指联合体,作用如下:

1、节省内存

有两个很长的数据结构,不会同时使用,用结构体的话,只占用最长的那个数据结构所占用的空间,就足够了。

2、做某些转换用

union{char a[8];double x;};

x=20.8;

cout<<hex<<a[0]<<“ ”<<a[1]<<…<<endl;

扩展资料:

结构体和共用体

结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。

结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。

共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。

共用体也是一种自定义类型,可以通过它来创建变量,

参考资料来源:百度百科-共用体

热心网友 时间:2024-10-07 16:47

定义  在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。注:在某些书籍中可能称之为“联合体”,但是“共用体”更能反映该类型在内存的特点。
一般定义形式  union 共用体名  {  成员表列  }变量表列;
简单示例  union data

  {

  int i;

  char ch;

  float f;

  }a,b,c;

编辑本段共用体变量的引用方式  只有先定义了共用体变量才能在后续程序中引用它,有一点需要注意:不能引用共用体变量,而只能引用共用体变量中的成员。

  简单示例

  union data

  {

  int i;

  char ch;

  float f;

  }a,b,c;

  对于这里定义的共用体变量a,b,c。下面的引用方式是正确的:

  a.i (引用共用体变量中的整型变量i)

  a.ch (引用共用体变量中的字符变量ch)

  a.f (引用共用体变量中的实型变量f)

  而不能引用共用体变量,例如:

  printf("%d",a); <==这种用法是错误的。

  因为a的存储区内有好几种类型的数据,分别占用不同长度的存储区,这些共用体变量名a,难以使系统确定究竟输出的是哪一个成员的值。

  而应该写成

  printf("%d",a.i); 或 printf("%c",a.ch);

编辑本段共用体类型数据的特点  1.同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬间只能存放其中的一种,而不是同时存放几种。换句话说,每一瞬间只有一个成员起作用,其他的成员不起作用,即不是同时都在存在和起作用。

  2.共用体变量中起作用的成员是最后一次存放的成员,在存入一个新成员后,原有成员就失去作用。

  3.共用体变量的地址和它的各成员的地址都是同一地址。

  4.不能对共用体变量名赋值,也不能企图引用变量名来得到一个值,并且,不能在定义共用体变量时对它进行初始化。

  5.不能把共用体变量作为函数参数,也不能是函数带回共用体变量,但可以使用指向共用体变量的指针。

  6.共用体类型可以出现在结构体类型的定义中,也可以定义共用体数组。反之,结构体也可以出现在共用体类型的定义中,数组也可以作为共用体的成员。

热心网友 时间:2024-10-07 16:48

共同体是指成员共同使用一段存储区域,共同体占用内存大小决定于所占内存最大的那个成员,但是实际使用的内存会小于等于共同体所占内存大小

热心网友 时间:2024-10-07 16:48

union

例如定义一个union

union {
UCHAR S_un_b;
USHORT S_un_w;
ULONG S_addr;
} S_un;

S_un s;
你可以用s.S_un_b, s.S_un_w, S_addr访问
实际上访问的是同一块内存区域,但由于数据类型不同,所以得到的结果可能不一样。
修改其中一个数据,其他的数据都可能会改变。
union所占的内存大小有最大的那个数据类型决定。

热心网友 时间:2024-10-07 16:46

所谓共用体类型是指将不同的数据项组织成一个整体,它们在内存中占用同一段存储单元。其定义形式为:
union 共用体名
{成员表列};

union data
{
int a ;
float b;
doublec;
chard;
}obj;
该形式定义了一个共用体数据类型union data ,定义了共用体数据类型变量obj。共用体数据类型与结构体在形式上非常相似,但其表示的含义及存储是完全不同的。先让我们看一个小例子。

union data /*共用体*/
{
int a;
float b;
double c;
char d;
}mm;
struct stud /*结构体* /
{
int a;
float b;
double c;
char d;
};
main( )
{
struct stud student;
printf("%d,%d",sizeof(struct stud),sizeof(union data));
}
运行程序输出:
15,8
程序的输出说明结构体类型所占的内存空间为其各成员所占存储空间之和。而形同结构体的共用体类型实际占用存储空间为其最长的成员所占的存储空间。
对共用体的成员的引用与结构体成员的引用相同。但由于共用体各成员共用同一段内存空间,使用时,根据需要使用其中的某一个成员。从图中特别说明了共用体的特点,方便程序设计人员在同一内存区对不同数据类型的交替使用,增加灵活性,节省内存。

可以引用共用体变量的成员,其用法与结构体完全相同。若定义共用体类型为:
union data /*共用体*/
{
int a;
float b;
double c;
char d;
}mm;
其成员引用为:mm.a,mm.b,mm.c,mm.d 但是要注意的是,不能同时引用四个成员,在某一时刻,只能使用其中之一的成员。

main( )
{
union data
{
int a;
float b;
double c;
char d;
}mm;
mm.a=6;
printf("%d\n",mm.a);
mm.c=67.2;
printf("%5.1lf\n", mm.c);
mm.d='W';
mm.b=34.2;
printf("%5.1f,%c\n",mm.b,mm.d);
}
运行程序输出为:
6
6 7.2
3 4.2,=
程序最后一行的输出是我们无法预料的。其原因是连续做mm.d='W';mm.b=34.2;两个连续的赋值语句最终使共用体变量的成员mm.b所占四字节被写入34.2,而写入的字符被覆盖了,输出的字符变成了符号“ =”。事实上,字符的输出是无法得知的,由写入内存的数据决定。
例子虽然很简单,但却说明了共用体变量的正确用法。

热心网友 时间:2024-10-07 16:47

共用体一般指联合体,作用如下:

1、节省内存

有两个很长的数据结构,不会同时使用,用结构体的话,只占用最长的那个数据结构所占用的空间,就足够了。

2、做某些转换用

union{char a[8];double x;};

x=20.8;

cout<<hex<<a[0]<<“ ”<<a[1]<<…<<endl;

扩展资料:

结构体和共用体

结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。

结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。

共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。

共用体也是一种自定义类型,可以通过它来创建变量,

参考资料来源:百度百科-共用体

热心网友 时间:2024-10-07 16:47

定义  在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。注:在某些书籍中可能称之为“联合体”,但是“共用体”更能反映该类型在内存的特点。
一般定义形式  union 共用体名  {  成员表列  }变量表列;
简单示例  union data

  {

  int i;

  char ch;

  float f;

  }a,b,c;

编辑本段共用体变量的引用方式  只有先定义了共用体变量才能在后续程序中引用它,有一点需要注意:不能引用共用体变量,而只能引用共用体变量中的成员。

  简单示例

  union data

  {

  int i;

  char ch;

  float f;

  }a,b,c;

  对于这里定义的共用体变量a,b,c。下面的引用方式是正确的:

  a.i (引用共用体变量中的整型变量i)

  a.ch (引用共用体变量中的字符变量ch)

  a.f (引用共用体变量中的实型变量f)

  而不能引用共用体变量,例如:

  printf("%d",a); <==这种用法是错误的。

  因为a的存储区内有好几种类型的数据,分别占用不同长度的存储区,这些共用体变量名a,难以使系统确定究竟输出的是哪一个成员的值。

  而应该写成

  printf("%d",a.i); 或 printf("%c",a.ch);

编辑本段共用体类型数据的特点  1.同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬间只能存放其中的一种,而不是同时存放几种。换句话说,每一瞬间只有一个成员起作用,其他的成员不起作用,即不是同时都在存在和起作用。

  2.共用体变量中起作用的成员是最后一次存放的成员,在存入一个新成员后,原有成员就失去作用。

  3.共用体变量的地址和它的各成员的地址都是同一地址。

  4.不能对共用体变量名赋值,也不能企图引用变量名来得到一个值,并且,不能在定义共用体变量时对它进行初始化。

  5.不能把共用体变量作为函数参数,也不能是函数带回共用体变量,但可以使用指向共用体变量的指针。

  6.共用体类型可以出现在结构体类型的定义中,也可以定义共用体数组。反之,结构体也可以出现在共用体类型的定义中,数组也可以作为共用体的成员。

热心网友 时间:2024-10-07 16:48

共同体是指成员共同使用一段存储区域,共同体占用内存大小决定于所占内存最大的那个成员,但是实际使用的内存会小于等于共同体所占内存大小

热心网友 时间:2024-10-07 16:48

union

例如定义一个union

union {
UCHAR S_un_b;
USHORT S_un_w;
ULONG S_addr;
} S_un;

S_un s;
你可以用s.S_un_b, s.S_un_w, S_addr访问
实际上访问的是同一块内存区域,但由于数据类型不同,所以得到的结果可能不一样。
修改其中一个数据,其他的数据都可能会改变。
union所占的内存大小有最大的那个数据类型决定。

热心网友 时间:2024-10-07 16:47

所谓共用体类型是指将不同的数据项组织成一个整体,它们在内存中占用同一段存储单元。其定义形式为:
union 共用体名
{成员表列};

union data
{
int a ;
float b;
doublec;
chard;
}obj;
该形式定义了一个共用体数据类型union data ,定义了共用体数据类型变量obj。共用体数据类型与结构体在形式上非常相似,但其表示的含义及存储是完全不同的。先让我们看一个小例子。

union data /*共用体*/
{
int a;
float b;
double c;
char d;
}mm;
struct stud /*结构体* /
{
int a;
float b;
double c;
char d;
};
main( )
{
struct stud student;
printf("%d,%d",sizeof(struct stud),sizeof(union data));
}
运行程序输出:
15,8
程序的输出说明结构体类型所占的内存空间为其各成员所占存储空间之和。而形同结构体的共用体类型实际占用存储空间为其最长的成员所占的存储空间。
对共用体的成员的引用与结构体成员的引用相同。但由于共用体各成员共用同一段内存空间,使用时,根据需要使用其中的某一个成员。从图中特别说明了共用体的特点,方便程序设计人员在同一内存区对不同数据类型的交替使用,增加灵活性,节省内存。

可以引用共用体变量的成员,其用法与结构体完全相同。若定义共用体类型为:
union data /*共用体*/
{
int a;
float b;
double c;
char d;
}mm;
其成员引用为:mm.a,mm.b,mm.c,mm.d 但是要注意的是,不能同时引用四个成员,在某一时刻,只能使用其中之一的成员。

main( )
{
union data
{
int a;
float b;
double c;
char d;
}mm;
mm.a=6;
printf("%d\n",mm.a);
mm.c=67.2;
printf("%5.1lf\n", mm.c);
mm.d='W';
mm.b=34.2;
printf("%5.1f,%c\n",mm.b,mm.d);
}
运行程序输出为:
6
6 7.2
3 4.2,=
程序最后一行的输出是我们无法预料的。其原因是连续做mm.d='W';mm.b=34.2;两个连续的赋值语句最终使共用体变量的成员mm.b所占四字节被写入34.2,而写入的字符被覆盖了,输出的字符变成了符号“ =”。事实上,字符的输出是无法得知的,由写入内存的数据决定。
例子虽然很简单,但却说明了共用体变量的正确用法。

热心网友 时间:2024-10-07 16:47

共用体一般指联合体,作用如下:

1、节省内存

有两个很长的数据结构,不会同时使用,用结构体的话,只占用最长的那个数据结构所占用的空间,就足够了。

2、做某些转换用

union{char a[8];double x;};

x=20.8;

cout<<hex<<a[0]<<“ ”<<a[1]<<…<<endl;

扩展资料:

结构体和共用体

结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。

结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。

共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。

共用体也是一种自定义类型,可以通过它来创建变量,

参考资料来源:百度百科-共用体

热心网友 时间:2024-10-07 16:48

定义  在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。注:在某些书籍中可能称之为“联合体”,但是“共用体”更能反映该类型在内存的特点。
一般定义形式  union 共用体名  {  成员表列  }变量表列;
简单示例  union data

  {

  int i;

  char ch;

  float f;

  }a,b,c;

编辑本段共用体变量的引用方式  只有先定义了共用体变量才能在后续程序中引用它,有一点需要注意:不能引用共用体变量,而只能引用共用体变量中的成员。

  简单示例

  union data

  {

  int i;

  char ch;

  float f;

  }a,b,c;

  对于这里定义的共用体变量a,b,c。下面的引用方式是正确的:

  a.i (引用共用体变量中的整型变量i)

  a.ch (引用共用体变量中的字符变量ch)

  a.f (引用共用体变量中的实型变量f)

  而不能引用共用体变量,例如:

  printf("%d",a); <==这种用法是错误的。

  因为a的存储区内有好几种类型的数据,分别占用不同长度的存储区,这些共用体变量名a,难以使系统确定究竟输出的是哪一个成员的值。

  而应该写成

  printf("%d",a.i); 或 printf("%c",a.ch);

编辑本段共用体类型数据的特点  1.同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬间只能存放其中的一种,而不是同时存放几种。换句话说,每一瞬间只有一个成员起作用,其他的成员不起作用,即不是同时都在存在和起作用。

  2.共用体变量中起作用的成员是最后一次存放的成员,在存入一个新成员后,原有成员就失去作用。

  3.共用体变量的地址和它的各成员的地址都是同一地址。

  4.不能对共用体变量名赋值,也不能企图引用变量名来得到一个值,并且,不能在定义共用体变量时对它进行初始化。

  5.不能把共用体变量作为函数参数,也不能是函数带回共用体变量,但可以使用指向共用体变量的指针。

  6.共用体类型可以出现在结构体类型的定义中,也可以定义共用体数组。反之,结构体也可以出现在共用体类型的定义中,数组也可以作为共用体的成员。

热心网友 时间:2024-10-07 16:48

共同体是指成员共同使用一段存储区域,共同体占用内存大小决定于所占内存最大的那个成员,但是实际使用的内存会小于等于共同体所占内存大小

热心网友 时间:2024-10-07 16:49

union

例如定义一个union

union {
UCHAR S_un_b;
USHORT S_un_w;
ULONG S_addr;
} S_un;

S_un s;
你可以用s.S_un_b, s.S_un_w, S_addr访问
实际上访问的是同一块内存区域,但由于数据类型不同,所以得到的结果可能不一样。
修改其中一个数据,其他的数据都可能会改变。
union所占的内存大小有最大的那个数据类型决定。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是...10 古代的大宅院都是几进,那么主人居住在那间?主人的子女呢?客人呢?下... 豆豆钱能提前还款吗 怎么查看自己的注册了多久了? 最近在优酷上看见一个广告,女主角是韩国女明星,好像关于饮料的...1 老年人癫痫生活饮食上需要注意什么? 全球公爵有什么用 疤痕皮肤可以纹眉毛吗 为人民服务是什么的什么,什么的什么,中国国家机构的什么、中国...55 国际象棋女棋手特级大师称号和女子特级大师称号的区别。2 全国新工委是什么机构?1 我爱人2014年大面积脑梗,高血压,并发症癫痫,能吃韭菜炒鸡蛋吗?_百度知 ... 我国农村集体土地产权制度 ...最后一句是am so sorry很好听 是什么歌啊?? 大姨妈来能吃三七粉吗8 怎么注册第二个 注册第二个的方法 豌豆能和猪肝在一起吃吗?1 手机淘宝没有桌面图标怎么弄出来64 行政拘留为什么不属于行治安行政强制权 用soildworks画装配图时,为什么插入的两个零件图都是固定的无法移动进行... 为什么龙和女人都喜欢亮晶晶的东西?21 洗澡的时候能不用澡巾搓澡吗3 国际象棋棋手有哪些等级名称?(比如:特级大师之类的)8 关工委是什么机构?268 造价咨询公司升甲级资质到到底需要几个造价工程师,有没有具体文...8 白玉鸟的生长繁殖1 白玉鸟能和别的什么鸟交配吗?12 韩国雪碧广告女主角是谁4 OPPO手机怎么设置软件后台运行?121 洗澡的时候可以搓澡吗1 洗澡的时候搓澡好不好?90 全国城镇化工作委员会是什么性质的机构? 最高人民法院关于人民法院民事执行中拍卖、变卖财产的规定116 中国关心下一代工作委员会事业发展中心是什么机构?和中国关心下...36 宿迁市洋河新区物流网点有哪些?2 OPPO手机怎么设置软件后台运行?121 有没有夸人长得好看的成语或词语95 有哪些描写人的声音好听的词语咧?584 瞧字怎么组词226 用瞧组词185