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