[fpc-devel] Strange Problem!
Amir
amir at aavani.net
Wed Apr 25 00:36:02 CEST 2012
Hi,
I have encountered a strange problem. I developed the following function
as a faster implementation for IntToStr:
function MyIntToStr (n: Int64): AnsiString;
const
MaxLength= 16;
var
CurDigit: PChar;
Sign: Boolean;
begin
Result:= ' ';
CurDigit:= @(Result [MaxLength]);
Sign:= False;
if n< 0 then
begin
Sign:= True;
n:= -n;
end;
if n= 0 then
Exit ('0');
while n<> 0 do
begin
CurDigit^:= Char (48+ n mod 10);
Dec (CurDigit);
n:= n div 10;
end;
if Sign then
CurDigit^:= '-';
end;
And then, in main , I have
begin
WriteLn (MyIntToStr (5458));
WriteLn (MyIntToStr (5458));
WriteLn (MyIntToStr (2));
end.
The output is:
5458
5458
5452
I tried gdb and noticed the first line of MyIntToStr (Result:= '...') is
not executed correctly. I am using fpc-2.6.0-1.x86_64
Thanks,
Amir
More information about the fpc-devel
mailing list