Czy większość programistów aplikacji używa podpisanych liczb całkowitych w miejscach, w których naprawdę chcą używać liczb całkowitych bez znaku? Robię to cały czas, podobnie jak moi współpracownicy. Nie widziałem wielu innych obszernych baz kodu (innych niż Delphi VCL), a przykłady w Internecie zwykle używają liczb całkowitych. Podczas gdy programiści VCL używają własnych typów danych (co byłoby najbardziej leniwym sposobem na zadeklarowanie zmiennych).
Coś takiego wydaje się trochę przerażające w takim kodzie
TStuffRec = record
recordID : Integer;
thingID : Integer;
otherThingID : Integer;
end;
kiedy można to zapisać jako
TStuffRec = record
recordID : Cardinal;
thingID : Cardinal;
otherThingID : Cardinal;
end;
Funkcjonalnie te rekordy prawie zawsze działają tak samo (i mam nadzieję, że będą nadal działać tak samo, nawet w 64-bitowym Delphi). Ale bardzo duże liczby będą miały problemy z konwersją.
Ale są też wady używania niepodpisanych int. Wynika to głównie z tego, jak denerwujące jest mieszanie tych dwóch.
Prawdziwe pytanie brzmi: czy jest to rzecz, o której naprawdę się myśli lub która jest uwzględniana w najlepszych praktykach? Czy zwykle zależy to od programisty?