C 警告:语句对散列字符串无效

C Warning: Statement with no effect for hashing string

我正在尝试对字符串进行哈希处理,并且我从课本中获得了代码。

代码如下:

int hash(char *str) {
  int i, sum;
  for (sum = 0; i = 0; str[i] != '[=10=]'; i++)
    sum += (int) str[i];
  return sum % MODVAL;
}

给我错误的代码是str[i] != '[=11=]';

C for循环语法由3个表达式组成

for (initialization; condition; increment)

在您的代码中,for 循环声明中有四个表达式。如果你想要多次初始化(例如sumi初始化为零),你可以用逗号分隔它们:

for (sum = 0, i = 0; str[i] != '[=11=]'; i++)
    // ...