C零散知识点汇总之enum关键字

简介: C零散知识点汇总之enum关键字

C零散知识点汇总之enum关键字


enum enum_type_name {
    ENUM_CONST_1,
    ENUM_CONST_2,
    ENUM_CONST_3,
    ...
    ENUM_CONST_n
} enum_variable_name;

enum_type_name是自定义的一种数据类型名,而enum_variable_name是enum_type_name类型的一个变量,也就是常说的枚举常量。实际上enum_type_name类型是对一个变量取值范围的限定,而花括号内是它的取值范围。

枚举与#define宏的区别

1、#define宏常量是在预编译极端进行简单替换,没去常量则是在编译的时候确定其值。

2、一般在调试器里,可以调试枚举常量,但是不能调试宏常量。

3、枚举可以一次定义大量相关的常量,而#define宏一次只能定义一个。

枚举能做到事,#define宏能不能都做到?如果能,那为什么还需要枚举?

1、枚举可以自增1,这样不用每一个值都定义,而宏必须每个值都定义。

2、枚举是一个集合,代表一类值,像你代码中的颜色归为一类,方便使用,而宏不能形成集合。

sizeof(enum_type_name)的值是多少?

sizeof(enum_type_name)是4,因为enum_type_name是一个枚举变量,而枚举变量代表一个整数(如enum_type_name = ENUM_CONST_1),而整数是4个字节。

相关文章
|
6月前
|
Java Spring
使用枚举定义常量更好点儿
使用枚举定义常量更好点儿
|
C语言
带你熟知关键字static用法——C语言(举例及通俗易懂)
带你熟知关键字static用法——C语言(举例及通俗易懂)
342 0
|
6月前
|
Java
Java程序设计基础——关键字与标识符
Java程序设计基础——关键字与标识符
|
5月前
|
C语言
C语言学习记录——枚举(定义、与结构体的区别、优点)
C语言学习记录——枚举(定义、与结构体的区别、优点)
53 3
|
C++
【C++知识点】枚举类型
【C++知识点】枚举类型
139 0
|
Java 编译器 程序员
【Java编程进阶】标识符和关键字
标识符是用于给程序中的变量、类、方法等命名的符号。标识符有一套要遵循的命名规则。Java关键字是预先约定的对 Java 编译器有特殊含义的字符串,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。
116 1
【Java编程进阶】标识符和关键字
|
存储 C语言 C++
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(二)
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(二)
|
Linux C语言 C++
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(一)
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(一)
|
存储 编译器 C语言
c语言复习之结构体、联合、枚举(十二)
c语言复习之结构体、联合、枚举(十二)
C语言——enum枚举实例、知识点。使用枚举,减少相同定义步骤,简洁数据1.1.5
枚举是C语言常见的一种基本数据类型,它可以避免多个整数定义的麻烦,使代码整洁干净易读如此一看,就觉得繁琐无比,大量重复#define xx明显增加代码量,且数值需自己一一对应而枚举,可以解决这种定义连续数值的过程当变量第一个值未自定义时,第一个枚举成员的默认值则为整型0,后续成员值依次加1,如此时MON=0,TUE=1,WED=2·····.........
C语言——enum枚举实例、知识点。使用枚举,减少相同定义步骤,简洁数据1.1.5