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个字节。

相关文章
|
8月前
|
C语言
带你熟知关键字static用法——C语言(举例及通俗易懂)
带你熟知关键字static用法——C语言(举例及通俗易懂)
135 0
|
19天前
|
C语言
C语言学习记录——枚举(定义、与结构体的区别、优点)
C语言学习记录——枚举(定义、与结构体的区别、优点)
18 3
|
1月前
|
缓存 Java
5个案例和流程图让你从0到1搞懂volatile关键字
5个案例和流程图让你从0到1搞懂volatile关键字
|
1月前
|
存储 安全 编译器
【C++入门(下篇)】C++引用,内联函数,auto关键字的学习
【C++入门(下篇)】C++引用,内联函数,auto关键字的学习
【C++入门(下篇)】C++引用,内联函数,auto关键字的学习
|
1月前
|
存储 Shell 程序员
【C/C++ 关键字 存储类说明符 】探究C/C++ typedef的秘密
【C/C++ 关键字 存储类说明符 】探究C/C++ typedef的秘密
49 0
|
C++
【C++知识点】枚举类型
【C++知识点】枚举类型
119 0
|
安全 Java
关于关键字transient的一二
关于关键字transient的一二
49 0
|
程序员 C语言 C++
C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
|
安全 编译器 C语言
C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
|
存储 安全 编译器
【C++入门必备知识:|引用| +|auto关键字| + |范围for|】
引用不是新定义一个变量,而是给已经存在的变量取别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存区间。
101 0