Ich verwende den FNV-Hash als Hashalgorithmus für meine Hashtabellenimplementierung, aber ich bekomme die Warnung im Titel der Frage dazu Leitung:Kann nicht loswerden "diese Dezimalkonstante ist nur in ISO C90 unsigned" Warnung
unsigned hash = 2166136261;
ich verstehe nicht, warum dies geschieht, weil, wenn ich dies tun:
4294967295
2166136261
:
printf("%u\n", UINT_MAX);
printf("2166136261\n");
ich diese bekommen 10
Das scheint unter den Grenzen meiner Maschine zu sein ...
Warum bekomme ich die Warnung und was sind meine Optionen, um es loszuwerden?
Ich nehme an, dass keine Auswirkungen in der FNV-Hashalgorithmus auferlegt, und dass es immer so funktioniert wie es sollte? –
@Naz: Ja. ____ – kennytm
Beachten Sie, dass der Code gut definiert ist und alle Versionen von C Standard erfüllt - das Suffix ist nur "erforderlich", um eine Warnung zu unterdrücken, die in diesem Fall falsch ist. –