我有一个函数(抄来的),有一行看不懂,能高手解释一下吗?static unsigned int account_hash(char const * username)
{
unsigned int i;
unsigned int pos;
unsigned int hash;
unsigned int ch;
ASSERT(username, 0);
for (hash=0,pos=0,i=0; i<strlen(username); i++) {
if (isascii((int)username[i]))
ch = (unsigned int)(unsigned char)tolower((int)username[i]);
else
ch = (unsigned int)(unsigned char)username[i];
hash ^= ROTL(ch,pos,sizeof(unsigned int)*CHAR_BIT);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<--这里
pos += CHAR_BIT-1;
}
return hash;
}有谁能给解释一下划线的那一行?
分数不够的话我再加
{
unsigned int i;
unsigned int pos;
unsigned int hash;
unsigned int ch;
ASSERT(username, 0);
for (hash=0,pos=0,i=0; i<strlen(username); i++) {
if (isascii((int)username[i]))
ch = (unsigned int)(unsigned char)tolower((int)username[i]);
else
ch = (unsigned int)(unsigned char)username[i];
hash ^= ROTL(ch,pos,sizeof(unsigned int)*CHAR_BIT);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<--这里
pos += CHAR_BIT-1;
}
return hash;
}有谁能给解释一下划线的那一行?
分数不够的话我再加
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货