Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

Inc и Succ   Найти похожие ветки 

 
CMOS ©   (2006-02-05 20:50) [0]

Что такое Inc(x) в Delphi и Pascal?
inc x
или
add x, 1; я думаю именно так

А что такое Succ(x)?
inc x
или
add x, 1


 
Anatoly Podgoretsky ©   (2006-02-05 21:04) [1]

Справку смотрел? Учебники читал?


 
Джо ©   (2006-02-05 21:06) [2]

Successor (англ.) — последующий элемент.


 
Zeqfreed ©   (2006-02-05 21:09) [3]

Следующий вопрос будет про Dec и Pred :)


 
Джо ©   (2006-02-05 21:10) [4]

> [3] Zeqfreed ©   (05.02.06 21:09)
> Следующий вопрос будет про Dec и Pred :)

Лиха беда начало :)


 
Anatoly Podgoretsky ©   (2006-02-05 21:24) [5]

Наверно он решил изучить язык с помощью форума, вместо чтения книг.
Наивный.


 
ВМ_   (2006-02-05 23:30) [6]

И всё-таки.

inc(x) увеличит значение x на 1
add x, 1 - это то же самое, но на ассемблере
succ(x) вернёт следующее значение, а с самой переменной x ничего не сделает


 
Германн ©   (2006-02-06 01:52) [7]


> inc(x) увеличит значение x на 1
> add x, 1 - это то же самое, но на ассемблере


Это, имхо не то же самое, хотя мне тут уже возражали по этому поводу. Хотя кто в нынешнее время обращает внимание на RangeCheck? :(


 
INKDEC   (2006-02-06 02:49) [8]

В основном inc(x) и dec(x) мспользуется для увеличения или уменьшения  указателя на единицу:


procedure TForm1.FormCreate(Sender: TObject);
const  A="0123qwe";
var Buf1: Pointer;
   B:byte;
   i:word;
begin
    Buf1:=@a[1];

    for i:=1 to Length(A) do
    begin
      B:= PByte(Buf1)^ ;
      Inc(PByte(Buf1));
      Memo1.Lines.add(char(b));
    end;
end;


Т.К. нельзя просто написать
Buf1:=Buf1+1


 
CMOS ©   (2006-02-07 14:13) [9]

В любом учебнике говорится, что Inc и Succ увеличивают значение переменной. Мне же нужен их исходный код.

procedure Inc;
begin
...
end;


 
MBo ©   (2006-02-07 14:17) [10]

>Мне же нужен их исходный код
А его нет ;)
Это "Compiler Magic" - при компиляции генерируется код соответственно аргументу (или аргументАМ для Inc)


 
Digitman ©   (2006-02-07 14:18) [11]


> В любом учебнике говорится, что Inc и Succ увеличивают значение
> переменной


Врешь ведь).. насчет "любого"...

Приведи цитату и ссылку на "учебник" ..


 
Vlad ©   (2006-02-07 14:21) [12]


> CMOS ©   (07.02.06 14:13) [9]


> В любом учебнике говорится, что Inc и Succ увеличивают значение
> переменной. Мне же нужен их исходный код.

Inc увеличивает, Succ не увеличивает.


 
evvcom ©   (2006-02-07 14:23) [13]


> add x, 1 - это то же самое, но на ассемблере

касаемо типа PInteger, например, будет
add x, 4
в 32-разрядной версии Windows.


 
Zeqfreed ©   (2006-02-07 14:26) [14]

Хотя исходный код увидеть нельзя — можно увидеть получившийся:

procedure Test();
var
a, b : Integer;
begin
a := 0;
Inc(a);
b := Succ(a);

ShowMessage(Format("Incremented a equals %d; The successor of a is %d", [a, b]));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Test();
end;


Получаем:
a := 0;
xor ebx, ebx

Inc(a);
inc ebx

b := Succ(a);
lea esi, [ebx+$01]


 
palva ©   (2006-02-07 17:09) [15]

> Inc увеличивает, Succ не увеличивает.

Если говорить строго, то не увеличивает, а "берет следующий" для перечислимого типа. Например можно написать:

var b: Boolean;
begin
// ...
b := False;
Inc(b);
WriteLn(b) // True
end.


 
begin...end ©   (2006-02-07 17:17) [16]

> palva ©   (07.02.06 17:09) [15]
> перечислимого

Порядкового.


 
palva ©   (2006-02-07 21:12) [17]

begin...end ©   (07.02.06 17:17) [16]
> Порядкового.
Точно.



Страницы: 1 вся ветка

Текущий архив: 2006.02.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.05 c
15-1139283950
Логин
2006-02-07 06:45
2006.02.26
FastReport 3.20


11-1120665038
avs
2005-07-06 19:50
2006.02.26
MHFindReplaceDialog


3-1135849868
Separator
2005-12-29 12:51
2006.02.26
Востановление базы в MSSQL Server


2-1139486895
Dmitrij_K
2006-02-09 15:08
2006.02.26
MS Word, TypeText и ограничение 64кб


15-1139056312
ZbarKiy
2006-02-04 15:31
2006.02.26
Исходники архиваторов?