Używam hash FNV jako algorytm haszowania na mojej tabeli haszowanie realizacji, ale otrzymuję ostrzeżenie w tytule pytanie na ten temat linia:Nie można pozbyć się "tej stałej dziesiętnej jest niepodpisane tylko w ISO C90" ostrzeżenie
unsigned hash = 2166136261;
nie rozumiem, dlaczego tak się dzieje, ponieważ kiedy to zrobić:
printf("%u\n", UINT_MAX);
printf("2166136261\n");
uzyskać to:
4294967295
2166136261
Który wydaje się być w granicach mojej maszyny ...
Dlaczego otrzymuję ostrzeżenie i jakie są moje opcje, aby się go pozbyć?
Zakładam, że nie ma to żadnego implikacji w algorytmie mieszania FNV i że zawsze będzie działało tak, jak powinno? –
@Naz: Tak. ____ – kennytm
Należy zauważyć, że kod jest dobrze zdefiniowany i jest zgodny ze wszystkimi wersjami standardu C - sufiks jest tylko "potrzebny" do wyciszenia ostrzeżenia, które w tym przypadku jest fałszywe. –