Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Про указатели [D5]


KSergey ©   (2004-06-11 14:14:00) 

Такой код:

function TTextFileStream.Read(var Buffer; Count: Longint): Longint;
begin
...
 if ((PChar(@Buffer))^ > #0) then ...

Я правильно понимаю, что я здесь проверю первый байт в буффере на то, что он отличен от 0?


Sandman25   (2004-06-11 17:28:00) [1]

[5] GuAV ©   (11.06.04 17:18)

Если нужно 1 раз, то удобнее typecast.
Если несколько, то absolute.


GuAV   (2004-06-11 17:18:00) [2]

имхо absolute хуже чем просто typecast (это святая вера :) )


GuAV   (2004-06-11 17:15:00) [3]


> К стати, а может это можно проще записать?

Byte(Buffer)<>0


Sandman25   (2004-06-11 14:30:00) [4]

procedure re(var Buffer);
var
 A: Byte absolute Buffer;
begin
 if A<>0 then
   showmessage('0');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 t: array[1..100] of char;
begin
 t[1] := #0;
 showmessage('1');
 re(t);
 showmessage('2');
 t[1] := #1;
 re(t);
end;


KSergey   (2004-06-11 14:27:00) [5]

Ну, именно про беззнаковое и было подразумето само собой ;) В основном я про синтаксис указателей спрашивал, а то не люблю я их в дельфи, признаться.

Спасибо.

PS
К стати, а может это можно проще записать?


Anatoly Podgoretsky   (2004-06-11 14:23:00) [6]

В принципе да, поскольку беззнаковое, а в общем нет, неравенство проверяют с помощью оператора <>


Наверх

Титульная страница Поиск, карта сайта Написать письмо