C++之枚举与宏定义
1 枚举enum
C++的枚举类型可以用来表示一组有限且固定的值。比如在如下代码中:
enum Color { RED, GREEN, BLUE };
定义了Color的枚举类型,分别对应三种不同的颜色。C++编译器会为枚举类型的常量分配整数值,从0开始递增。因此,在这个例子中,RED将被分配值为0,GREEN将被分配值为1,BLUE将被分配值为2。当然也可以通过指定数值进行赋值:
enum Color { RED = 1, GREEN = 2, BLUE = 3 };
2 宏定义#define
在C++中,宏定义可以用来在编译时进行文本替换和处理。
- 宏定义:宏定义是C++预处理器的一个功能,它可以在编译时进行文本替换。宏定义的基本语法可以分宏定义变量和宏定义函数。
//宏定义变量
#define 宏名称 替换文本
//宏定义函数
#define ADD(a, b) (a + b)
注意:对于定义的函数可能会存在混合类型运算的情况,比如a是int类型而b是float类型会引发错误。
当你使用这个宏时,比如 ADD(5, 3)
,预处理器会将其替换为 (5 + 3)
,即8。
但是,如果你给这个宏传递不同类型的参数,比如 ADD(5, 3.0)
,这会引起一个编译错误。这是因为预处理器在宏展开时不会进行任何类型检查或转换。在这种情况下,编译器会报出一个混合类型运算的错误,因为 5
是整数,而 3.0
是浮点数。