下例表示声明一个共用体foo:

  union foo{

  int i;

  char c;

  double k;

  };

  再用已声明的共用体可定义共用体变量。

  例如用上面说明的共用体定义一个名为bar的共用体变量, 可写成:

  union foo bar;

  在共用体变量bar中, 整型变量i和字符变量c共用同一内存位置。

  当一个共用体被声明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度的整数倍。以上例而言,最大长度是double数据类型,所以foo的内存空间就是double型的长度。

  union foo

  {

  char s[10];

  int i;

  };

  在这个union中,foo的内存空间的长度为12,是int型的3倍,而并不是数组的长度10。若把int改为double,则foo的内存空间为16,是double型的两倍。【char和int共享内存,内存数必须为4的整数倍】

 

相关文章:

  • 2022-12-23
  • 2021-10-20
  • 2021-06-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-14
  • 2022-12-23
猜你喜欢
  • 2021-06-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案