Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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, 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.039 c
2-1139493461
worldmen
2006-02-09 16:57
2006.02.26
Выбор в TCheckListBox-е выбранных строк


15-1139141684
Новичоккк
2006-02-05 15:14
2006.02.26
Антивирус


2-1139310245
Tsa
2006-02-07 14:04
2006.02.26
Работа с HDD


15-1139389488
Empleado
2006-02-08 12:04
2006.02.26
8 февраля - С Днем Науки, товарищи!


2-1139316683
Dmitrij_K
2006-02-07 15:51
2006.02.26
Толи меня глючит, толи delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский