Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Формат структуры...

6.1K
06 апреля 2007 года
Gfunk
42 / / 31.01.2006
typedef struct RETRIEVAL_POINTERS_BUFFER {

DWORD ExtentCount;
LARGE_INTEGER StartingVcn;
struct {
LARGE_INTEGER NextVcn;
LARGE_INTEGER Lcn;
} Extents[1];

}

С полями ExtentCount и StartingVcn все понятно ,а вот что значит вложенное определение структуры и Extents[1] в конце?
242
06 апреля 2007 года
Оlga
2.2K / / 04.02.2006
помоему объявление массива Extents данной структуры из одного элемента. странно только что имя структуры после типа struct не указано.
309
06 апреля 2007 года
el scorpio
1.1K / / 19.09.2006
OlgaKr
Это допускается - если происходит объявление поля структурного типа, то имя типа структуры можно не указывать. Хотя неудобно тем, что по второму разу этот тип данных уже использовать нельзя :(

А вот объявлять структуру через typedef - нечитаемая бредятина, которой порой страдают разработчики.
6.1K
06 апреля 2007 года
Gfunk
42 / / 31.01.2006
Вроде на мой ламерский взгляд кажется что у каждого элемента массива Extents есть параметры:NextVcn,Lcn.
Тоесть:StructName->Extents[r].Lcn или StructName->Extents[r].NextVcn.
Нутрром чучтвую а доказать не могу.

PS:это определение взято из файла микроцовта:WINIOCTL.h(инклуд файл Visual Studio)
242
06 апреля 2007 года
Оlga
2.2K / / 04.02.2006
во первых у массива всего один элемент, поэтому зачем было объявлять массив лично мне непонятно. а обращение к элементам насколько я помню происходит следующим образом:
 
Код:
Extents[index].Lcn
Extents[index].NextVcn
3
06 апреля 2007 года
Green
4.8K / / 20.01.2000
Все очень просто.
Массив единичного размера последним полем структуры - признак структуры неопределенной длины.
Объекты такого типа создают "вручную", выделяя блок памяти с учетом реального размера массива.
Далее можно обращаться к елементам массива простой индексацией.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог