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

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

Вопрос по var-параметрам и указателям [D6, XP]


T.V ©   (2007-03-21 19:52:00) 

В чем разница между var-параметром MEMORYSTATUS в функции GlobalMemoryStatus и
указателями на структуры FILETIME в функции GetFileTime? В обоих случаях они указывают на
адрес памяти, по которому расположена структура(ы). Почему в одном случае var а в другом Pointer?


begin...end   (2007-03-21 21:23:00) [1]

> T.V   (21.03.07 19:52)
> Почему в одном случае var а в другом Pointer?

Так удобнее. В случае с GlobalMemoryStatus параметр должен быть корректным указателем, а в случае GetFileTime какой-либо из параметров-указателей может быть нулевым ( "This parameter can be NULL if the application does not require this information"). Если бы параметры GetFileTime были описаны как var-параметры типа FILETIME, то для того, чтобы указать функции, что, например, время создания файла нас не интересует, пришлось бы выдумывать извращения типа GetFileTime(FileHandle, FILETIME(nil^), ...). Но, cлава Аллаху, они описаны как указатели, и мы можем просто передать nil.


T.V   (2007-03-21 20:00:00) [2]

Спасибо.


clickmaker   (2007-03-21 19:56:00) [3]

ни в чем. Дельфовский компилятор в обоих случаях сделает указатель


Наверх

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