Zdravím,
řekněme že mám např. takovouto strukturu binární hlavičky nějakého souboru
typedef struct {
uint16_t chans;
uint32_t freq;
uint32_t ssize;
uint32_t blck;
uint64_t resv;
uint16_t amplt[256];
} MUSHeader;
a zajímalo by mě, jak se v praxi načítá. Vždycky mě totiž láká něco jako
fread(&header, sizeof(MUSHeader), 1, file);
což je sice elegantní řešení, kvůli různýmu paddingu ale ne správný. Nakonec tedy skončím u něčeho jako
fread(&header.chans, sizeof(header.chans), 1, file);
fread(&header.freq, sizeof(header.freq), 1, file);
fread(&header.ssize, sizeof(header.ssize), 1, file);
fread(&header.blck, sizeof(header.blck), 1, file);
fread(&header.resv, sizeof(header.resv), 1, file);
fread(&header.amplt, sizeof(header.amplt), 1, file);
což už se mi tak moc nelíbí. Navíc systémová volání jsou časově relativně drahá záležitost. Ještě mě napadlo načíst si to celý do paměti a pak to z ní postupně přiřazovat, ale to by bylo docela složitý.
Takže jak se to teda v praxi řeší efektivně i efektně?
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Stálý člen

Nahlásit jako SPAM
IP: 2001:718:2:2905:e088:b68a...–
Newbie
Zjistit počet nových příspěvků































