C语言小结之位段、枚举、联合体

本文介绍了C语言中的位段、枚举和联合体。位段节省空间但存在跨平台问题;枚举提高代码可读性和可维护性,具有类型检查;联合体成员共享内存,可用于判断大小端存储。
摘要由CSDN通过智能技术生成

一、位段

1.什么是位段?
位段的声明与结构体是类似的,但是有一些不同,位段的成员必须是int、unsigned int、signed int、char(数组整形家族类型),位段的成员名后边有一个冒号和一个数字。
示例:

struct A
{
    int a:2;
    int b:5;
    int c:10;
    int d:30;
};

2.位段的内存分配
①位段的成员都是属于整形家族的类型
②位段的空间上是按照需要以一个字节(char)或者四个字节(int)的方式来开辟的
③位段涉及很多不确定的因素,所以位段是不跨平台的,要注重可移值的程序应该避免使用位段

struct S{
    char a:3;
    char b:4;
    char c:5;
    char d:4;
};
printf("%d\n",struct S);

以上位段是如何在内存中存储的呢?我们现在VS下运行一下这个代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值