当前位置: 首页 > news >正文

C语言基础知识--联合体

// 联合体关键字:union 也叫共用体
// 联合体 :多个成员变量共用一个存储空间
// 联合体的空间大小是  联合体中成员变量中存储空间最大的那个变量
// 联合体的大小计算
// 当最大成员大小不是最大对齐数的整数倍时,会对齐到最大对齐数整数倍
// 联合体也存在内存对齐
// union un {
//   int a;
//   char b[5];
// };
// union xocde {
//   int a;
//   short b[7];
// };
// int main()
// {
//  printf("%zd\n", sizeof(union un));     // 8
//  printf("%zd\n", sizeof(union xocde));  // 16
//  return 0;
// }
// 为最大的成员变量分配存储空间,所有的成员都用这个存储空间
// 同时只能使用一个成员// union un {
//  int a;
//  char b;
// };
// int main () {
//   union un u ={0};
//   printf("%zd\n", sizeof(u));
//   return 0;
// }// 礼品清单🧾
//
// struct gift_order {
//
//    // common info
//    double price;
//    char type[20];
//
//    // specific info
//    union {
//      struct gift_book {
//        char author[20];
//        char publisher[20];
//        int pages;
//      } book;
//      struct gift_cd {
//        char singer[20];
//        char album[20];
//        int tracks;
//      }stereotype;
//    };
// };
// int main () {
//    struct gift_order order = {
//       .price = 10.0,
//       .type = "book",
//       .book = {
//          .author = "Tom",
//          .publisher = "Tom's Publisher",
//          .pages = 100
//       }
//    };
//   struct gift_order stereotype = {
//       .price = 10.0,
//       .type = "stereotype",
//       .stereotype = {
//          .singer = "Tom",
//          .album = "Tom's Album",
//          .tracks = 10
//       }
//    };
//    printf("The gift is %s\n", order.type);
//    printf("The book is %s by %s\n", order.book.author, order.book.publisher);
//    printf("The stereotype is %s by %s\n", stereotype.stereotype.singer, stereotype.stereotype.album);
//    return 0;
// }
// 联合体判断当前机器是大端还是小端// union un {
//  int a;
//  char b;
// };
// int main() {
//    union un u; // 初始化一个变量 充分利用了联合体取出1个字节的便捷性
//    // 00 00 00 01
//    // 01 00 00 00
//    u.b = 1;
//    if (u.a == 1) {
//      printf ("小端\n");
//    }
//    else {
//      printf ("大端\n");
//    }
// }
http://www.xdnf.cn/news/1112509.html

相关文章:

  • ICCV2025 特征点检测 图像匹配 RIPE
  • 缺陷特征粘贴增强流程
  • 过拟合 跷跷板 幻觉 混合精度
  • 学习笔记 Datewhale MCP Server Task2
  • Windows安装SSH
  • 【Java入门到精通】(二)Java基础语法(上)
  • [ABC267F] Exactly K Steps
  • 零基础 “入坑” Java--- 九、类和对象(二)
  • 车载操作系统 --- Linux实时化与硬实时RTOS综述
  • 数据结构——散列表
  • 【PTA数据结构 | C语言版】用两个栈实现队列
  • 【GESP】C++ 2025年6月一级考试-客观题真题解析
  • MoE(混合专家模型):大模型时代的“模块化超级大脑”——从原理到实战的深度革命
  • 初识JDBC
  • GPU编程入门:CUDA与OpenCL全面解析
  • C语言基础知识--动态内存管理
  • 【时间之外】AI在农机配件设计场景的应用
  • bp使用爆破模块破解pikachu的登陆密码
  • java堆的创建与基础代码解析(图文)
  • BKD 树(Block KD-Tree)Lucene
  • TCP与UDP协议详解:网络世界的可靠信使与高速快递
  • UnityShader——SSAO
  • 微信小程序121~130
  • 时序分解 | Matlab基于GWO-FMD基于灰狼算法优化特征模态分解-2025-7-12
  • 直播录屏技术揭秘:以抖音直播录屏为例
  • LLM 不知道答案,但是知道去调用工具获取答案?
  • 基于STM32F412+RT-Thread的智能汽车CAN通信仪表盘
  • ADSP-1802这颗ADI的最新DSP应该怎么做开发(一)
  • JavaScript 常见10种设计模式
  • TCP详解——各标志位