Форум: "Начинающим";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Вниз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, ebxInc(a);
inc ebxb := 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c