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月前
|
Java Spring
使用枚举定义常量更好点儿
使用枚举定义常量更好点儿
|
8月前
|
缓存 Java
5个案例和流程图让你从0到1搞懂volatile关键字
5个案例和流程图让你从0到1搞懂volatile关键字
|
8月前
|
存储 安全 编译器
【C++入门(下篇)】C++引用,内联函数,auto关键字的学习
【C++入门(下篇)】C++引用,内联函数,auto关键字的学习
【C++入门(下篇)】C++引用,内联函数,auto关键字的学习
|
C++
【C++知识点】枚举类型
【C++知识点】枚举类型
157 0
|
Java 编译器 程序员
【Java编程进阶】标识符和关键字
标识符是用于给程序中的变量、类、方法等命名的符号。标识符有一套要遵循的命名规则。Java关键字是预先约定的对 Java 编译器有特殊含义的字符串,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。
126 1
【Java编程进阶】标识符和关键字
|
存储 安全 编译器
【C++入门必备知识:|引用| +|auto关键字| + |范围for|】
引用不是新定义一个变量,而是给已经存在的变量取别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存区间。
135 0
C零散知识点汇总之typedef关键字
C零散知识点汇总之typedef关键字
|
编译器 C语言
C零散知识点汇总之struct关键字
C零散知识点汇总之struct关键字
|
编译器
C零散知识点汇总之volatile关键字
C零散知识点汇总之volatile关键字

热门文章

最新文章