您的位置:首页 > 其它

简单问题(2)---数据类型转换的潜规则

2011-04-11 13:40 585 查看
接上篇
http://blog.csdn.net/deyili/archive/2011/04/11/6315327.aspx


type 是个 unsigned
int
, 根据数据类型提升规则(参见《C++ Primer》),

type - ETypeOne 的结果也是个

unsigned
int
,也就是说恒大于0,同理

type - ETypeNine

。于是这两个比较就失去了意义。



其实很简单,修改成这样就好了!

enum
{
	ETypeUnknow = 0,
	ETypeA,
	ETypeB,
	//......
	ETypeZ,
	ETypeOne,
	ETypeTwo,	
	ETypeThree,
	ETypeFour,
	ETypeFive,
	ETypeSix,
	ETypeSeven,
	ETypeEight,
	ETypeNine,
};

bool IsDigitType(unsigned int type)
{
	return type >= ETypeOne && type <= ETypeNine ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: