Главная страница
    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.044 c
6-1131830669
Volf_555
2005-11-13 00:24
2006.02.26
Как получить текст строки состояния активного окна?


2-1139830828
CMOS
2006-02-13 14:40
2006.02.26
Работа с чужими окнами


15-1139291447
DelphiN!
2006-02-07 08:50
2006.02.26
Соединение с сервером происходит только после его пинга


2-1139033616
ViktorZ
2006-02-04 09:13
2006.02.26
Выборка из 2ух таблиц


2-1139695396
Змей
2006-02-12 01:03
2006.02.26
DriveComboBox1->edit.text->DriveComboBox2





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский