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