审核代码遇到的有意思的东西

审核代码的时候看到了一个判断是不是在同一个网段的代码,如下

static unsigned long IPAddr2Num(const char* ip)
{
unsigned long ret:
#ifdef _WIN32
ret = inet_addr(ip);
#else
struct in_addr InAddr;
inet_aton(ip, &IpAddr);
ret = IpAddr.s_addr;
#endif
return ntohl(ret);
}

bool
CCheckIP::IsCheckIP(const char* ip) { unsigned long ipul = IPAddr2Num(ip); for(size_t i = 0; i < privateIP.size(); ++i) { unsigned long cmp = ipul^privateIP[i].ip; cmp &= ~((1ul << (32 - privateIP[i].mask)) - 1); if(cmp == 0) return true; } return false; }

看到1ul的时候,愣了一下,然后上网搜了一下,原来1ul表示 1 unsigned long的意思

对应的,ll : long long

猜你喜欢

转载自www.cnblogs.com/YoungBig/p/10251903.html