![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по 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]ни в чем. Дельфовский компилятор в обоих случаях сделает указатель