exponenta event banner

H5ML.hoffset

Определите смещение поля в структуре

Примечание

H5ML.hoffset не рекомендуется. Используйте H5T вместо этого.

Синтаксис

Описание

Эта функция используется, чтобы определить смещение (в байтах) структуры, H5T.insert(file_type,'a', offset(1), dtype(1));, в поле. Это используется при построении типа СОСТАВНОГО ОБЪЕКТА HDF5. Это разработано, чтобы соответствовать макросу HDF5 HOFFSET. Для получения дополнительной информации об операции макроса HOFFSET, консультируйтесь с документацией HDF5.

Параметры функции:

offsetБайтовое смещение поля в структуре.
structureСтруктура, которая содержит заданное имя поля.
fieldnameПоле, для которого определяется смещение.

Примеры

Эта функция удерживается от использования. Это может только использоваться в рабочих процессах, которые не включают поле, которое является самостоятельно СОСТАВНЫМ ОБЪЕКТОМ HDF5 или переменной длины. Чтобы обработать эти случаи, смещения должны быть вычислены непосредственно. Например, в случае выше, пространство данных файла для такого составного объекта могло быть создано с:

dtype(1) = H5T.copy('H5T_NATIVE_INT');
dtype(2) = H5T.copy('H5T_NATIVE_DOUBLE');
dtype(3) = H5T.copy('H5T_NATIVE_FLOAT');
 
for j = 1:3, sz(j,1) = H5T.get_size(dtype(j)); end
 
% The first offset would always be zero and the size of the last 
% field does not matter.
offset(1) = 0;
offset(2:3) = cumsum(sz(1:2));
 
file_type = H5T.create('H5T_COMPOUND',sum(sz));
 
H5T.insert(file_type,'a', offset(1), dtype(1));
H5T.insert(file_type,'b', offset(2), dtype(2));
H5T.insert(file_type,'c', offset(3), dtype(3));

Смотрите также