联合体的概念、特点、计算

简介: 联合体的概念、特点、计算

联合体的自定义

联合是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。比如下列代码

//联合类型的声明
union Un
{
    char c;
    int i;
};
//联合变量的定义
union Un un;
//计算这个变量的大小
printf("%d\n",sizeof(un));

联合体中的成员的地址是一样的,可能所占字节大小不同。

在同一时间联合体只能用一个成员。

联合的特点

联合体的成员是公用同一内存空间的,这样一个联合变量的大小,至少是最大成员的大小,使得联合至少有能力保存最大的那个成员。

判断当前计算机的大小端储存

int main()
{
    int a = 1;
    if(*(char *)&a == 1)
        printf("小端");
    else
        printf("大端");
    return 0;
}
//利用联合体进行判断大小端,因为是要利用int类型的第一个字节进行判断
int panduan()
{
  union Un
  {
    char c;
    int a;
  }u;
  u.a = 1;
  //if (u.c == 1)
  //{
  //  return 1;
  //}
  //else
  //{
  //  return 0;
  //}
    reuturn u.c;
}
int main()
{
  int ret;
  ret = panduan();
  if (ret == 1)
  {
    printf("小端");
  }
  else
  {
    printf("大端");
  }
  return 0;
}

联合体的计算

不同于结构体,联合体一般是成员中占用内存最大的字节是联合体的大小,但联合体的大小也是成员中最大对齐数的整数倍。

相关文章
|
开发工具 数据安全/隐私保护 C++
[笔记] 编译bit7z踩坑记录
[笔记] 编译bit7z踩坑记录
1147 0
|
Java 数据库连接 Go
如何在Spring Boot应用中使用Nacos实现动态更新数据源
如何在Spring Boot应用中使用Nacos实现动态更新数据源
1151 0
|
弹性计算 固态存储 大数据
2024阿里云服务器租用价格表(一年/按月/按小时报价明细)
阿里云服务器2024年最新租用价格表显示,轻量应用服务器2核2G3M带宽一年82元(约6.8元/月),2核4G4M带宽轻量服务器一年298元。新老用户共享99元一年的2核2G3M带宽ECS经济型e实例服务器与199元一年的企业专享2核4G5M带宽ECS u1实例服务器优惠。4核16G10M带宽游戏服务器70元/月,8核32G10M带宽160元/月。GPU服务器如gn6v和gn6i等提供新用户专享折扣。续费折扣方面,续费一年享有7.5折,续费五年则有3折优惠。按小时计费的云服务器ECS实例中,如ecs.u1-c1m4.large(2核8G)每小时0.45元。
31916 17
|
SQL 存储 Oracle
【赵渝强老师】Hive的分区表
Hive的分区表与Oracle、MySQL类似,通过分区条件将数据分隔存储,提高查询效率。本文介绍了静态分区表和动态分区表的创建与使用方法,包括具体SQL语句和执行计划分析,附带视频讲解。静态分区表需显式指定分区条件,而动态分区表则根据插入数据自动创建分区。
1205 1
|
关系型数据库 MySQL 数据挖掘
MySQL 8窗口函数详解:高效数据处理的必备技能
MySQL 8窗口函数详解:高效数据处理的必备技能
693 3
|
SQL Java 数据库连接
成功解决:was not registered for synchronization because synchronization is not active
这篇文章是关于解决Mybatis在同步过程中出现"was not registered for synchronization because synchronization is not active"错误的技术博客。
成功解决:was not registered for synchronization because synchronization is not active
|
并行计算 PyTorch 算法框架/工具
【已解决】RuntimeError: CuDA error: no kernel image is available for execution on the device
【已解决】RuntimeError: CuDA error: no kernel image is available for execution on the device
|
监控 druid 数据库连接
数据库连接池选择:HikariCP vs Druid
数据库连接池选择:HikariCP vs Druid
|
前端开发 Java
【十四】springboot整合WebSocket
【十四】springboot整合WebSocket
452 0
|
存储
uniapp录音功能和音频播放功能制作
uniapp录音功能和音频播放功能制作
927 0

热门文章

最新文章