в чем разница ?
спасибо
i:=i+n
var i: integer;и ее трансляцию на ассемблер (FPC 2.2.0 - Win32, Options -> Compiler -> Assembler -> List Source, и смотрим s-файл):
begin
i := 0;
writeln(i);
inc(i);
writeln(i);
i := i + 1;
writeln(i);
end.
# [6] inc(i);Как может inc работать медленнее при идентичных кодах? То, что на TP 7 Inc дает прирост в скорости более 20% - было, по-моему тестовые программы до сих пор лежат в FAQ-е.
movl U_P$PROGRAM_I,%eax
addl $1,%eax
jno .Lj17
call FPC_OVERFLOW
.Lj17:
movl %eax,U_P$PROGRAM_I
# Register eax,ecx,edx allocated
.stabn 68,0,7,.Ll5 - _main
.Ll5:
# [7] writeln(i);
#
# [8] i := i + 1;
movl U_P$PROGRAM_I,%eax
addl $1,%eax
jno .Lj30
call FPC_OVERFLOW
.Lj30:
movl %eax,U_P$PROGRAM_I
# Register eax,ecx,edx allocated
.stabn 68,0,9,.Ll7 - _main
.Ll7:
# [9] writeln(i);