C Предупреждение: оператор без эффекта для строки хеширования - PullRequest
1 голос
/ 30 апреля 2020

Я пытаюсь набрать sh строку, и я получил код из моего учебника.

Вот код:

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

Код, сообщающий мне ошибку: str[i] != '\0';

1 Ответ

5 голосов
/ 30 апреля 2020
Синтаксис

C for l oop состоит из 3 выражений

for (initialization; condition; increment)

В вашем коде есть четыре выражения в объявлении for l oop. Если вы хотите несколько инициализаций ( например инициализировать sum и i в ноль), вы можете вместо этого разделить их запятой:

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