关于判断int型是否越界的问题?
请教各位我在写charToInt的时候对于int型超过最大值的错误判断的时候,不知道有什么好的办法
我现在的处理是定义一个long型的result,然后判断计算的值是否超过int型的最大值,可是总觉得这样做不太好,至少多占用了空间丫,请问各位有什么好的方法么,请不吝赐教!
int StrToInt(const char* szStr){
long lResult = 0;
const int MAX_INT_VALUE = 2147483647;
const char* szTmp = szStr;
if( szStr == NULL )
return -1;
while (*szTmp){
if(*szTmp >= '0' && *szTmp <= '9'){
lResult = lResult*10+(*szTmp-'0');//
}
else {
return -1;
}
if( lResult > MAX_INT_VALUE ) return -1;//out of range
szTmp++;
}
return (int)lResult;
}