Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Чего же тут непонятного 04.12.03 14:56 Число просмотров: 1265
Автор: Cyril <sc> Статус: Member
|
> Итак, имеем функцию на этом бесконечно мудром языке: > (взято из примера по low-level NTFS programming) > > VOID ReadExternalAttribute(
> PNONRESIDENT_ATTRIBUTE attr,
> ULONGLONG vcn, ULONG count, PVOID buffer)
> {
> ULONGLONG lcn, runcount;
> ULONG readcount, left;
> PUCHAR bytes = PUCHAR(buffer);
>
> for (left = count; left > 0; left -= readcount) {
> FindRun(attr, vcn, &lcn, &runcount);
>
> readcount = ULONG(min(runcount, left));
>
> ULONG n = readcount * bootb.BytesPerSector *
> bootb.SectorsPerCluster;
>
> if (lcn == 0)
> memset(bytes, 0, n);
> else
> ReadLCN(lcn, readcount, bytes);
>
> vcn += readcount; //Вот здесь непонятки ;-)
> bytes += n;
> }
> }
> ---
> Почему в параметр vcn, переданный в функцию в стеке, делают > присвоение с инкрементом? Насколько я понимаю, это делать > нельзя (вернее, бессмысленно ;-). Почему бессмысленно
ведь FindRun(attr, vcn, &lcn, &runcount); вызывается в цикле с этим параметром
|
|
|