28
我在我的哈希表实现中使用FNV哈希作为哈希算法,但我在问题标题中获得了此警告行:无法摆脱“这个十进制常量仅在ISO C90中无符号”警告
unsigned hash = 2166136261;
我不明白为什么会这样,因为当我这样做:
printf("%u\n", UINT_MAX);
printf("2166136261\n");
我得到这个:
4294967295
2166136261
这似乎是在我的机器的限制...
为什么我会得到警告,我有什么选择摆脱它?
我认为这不会对FNV哈希算法产生任何影响,并且它会始终如其工作? – 2010-02-27 16:23:52
@纳兹:是的。 ____ – kennytm 2010-02-27 19:16:23
请注意,该代码已定义良好,并符合C标准的所有版本 - 后缀仅用于“需要”以使此警告消失,在此情况下,该警告是虚假的。 – 2017-01-10 01:30:05