1.问题来源
QT里面 QHostAddress 类的前面有这样的一些地方
class Q_NETWORK_EXPORT QHostAddress
{
public:
enum SpecialAddress {
Null,
Broadcast,
LocalHost,
LocalHostIPv6,
Any,
AnyIPv6,
AnyIPv4
};
2.上榜理由
什么时候用枚举值 ,什么时候用 宏定义?
3.解释
当限制输入时使用枚举类型比较好。如果仅仅是全局变量,那么建议使用宏定义。
因为枚举类型会被分配变量空间,而宏定义在编译阶段替换成代码。
关于限制输入经常有关这样的代码
enum Type{
Type_one,
Type_two,
Type_three,
};
void foo(Type type,int a){
/*
some operation
*/
}