Я использую хеш-память FNV как алгоритм хэширования в моей реализации таблицы Hash Table, но я получаю предупреждение в заголовке вопроса на этом линия:Невозможно избавиться от «этой десятичной константы без знака только в ISO C90»
unsigned hash = 2166136261;
Я не понимаю, почему это происходит потому, что когда я делаю это:
printf("%u\n", UINT_MAX);
printf("2166136261\n");
Я получаю это:
4294967295
2166136261
Который, кажется, находится в пределах моей машины ...
Почему я получаю предупреждение и какие у меня варианты, чтобы избавиться от него?
Я предполагаю, что это не накладывает никаких последствий в алгоритм хэширования FNV и что он всегда будет работать так, как должен? –
@Naz: Да. ____ – kennytm
Обратите внимание, что код четко определен и соответствует всем версиям стандарта C - суффикс нужен только для того, чтобы отключить предупреждение, которое в этом случае является ложным. –