フラグを指定してプログラムをコンパイルしたところ-Criot -gl
、1 の代わりに多くの結果が得られました (実際、216 エラーの修正を探していました)。1 つ目は、単純なハッシュ関数である以下のコードです。これを修正する方法がわかりません。
function HashStr(s : string) : integer;
var h : integer;
var c : char;
begin
h := 0;
for c in s do
h := ord(c) + 31 * h; { This is the line of error }
HashStr := h;
end;
これがどのように範囲外になる可能性がありますか?