枚举与位段

本文探讨了C语言中的枚举类型及其优点,包括增强代码可读性、类型检查、防止命名污染和方便调试。同时,还介绍了联合体(共用体)的概念,指出其大小至少为最大成员的大小,并讨论了位段的特性,如成员类型限制及跨平台问题。枚举和位段在编程中提供了灵活的常量定义和数据存储方式。
摘要由CSDN通过智能技术生成

枚举类型的定义

#include <stdio.h>
enum color
{ //枚举的可能取值
    blue,         //  ,号分隔
    red, 
    yellow
 };
enum S
{
    a =17,    
    b=20,
    c=16
};
int main()
{
    printf("%zd\n", sizeof(color)); //4
    printf("%zd\n", sizeof(blue));  //4,枚举类型的大小为整形大小
    printf("%d %d %d\n", blue,red,yellow); //初始值按顺序排默认为blue--0 red--1 yellow--2
    //enum S a = 12;  //error--"int" 类型的值不能用于初始化 "S" 类型的实体,不能再内部定义
    printf("%d %d %d\n",a,b,c);            //初始值可以在前面自定义
    return 0;
}

可以使用define,为什么还要用enum
枚举的优点
1.增强代码的可读性和可维护性
2.和define定义标识符相比,枚举有类型检查,更加严谨、
3.防止了命名污染(封装)
4.便于调试
5.使用方便,一次可以定义多个常量

联合(联合体,共用体)
这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间
联合体的大小至少是最大成员的大小
当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍联合类型的声明


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值