I ran into a little problem today using sizeof() and was hoping someone could clear it up for me.
Im writing a basic 3ds loader and have a struct declared like so:
struct _3DSCHUNKHEADER
{
WORD ChunkID;
DWORD ChunkLength;
};
When I use sizeof() to read a chunk header ...
_3DSCHUNKHEADER ChunkHeader;
fread(&ChunkHeader, sizeof(_3DSCHUNKHEADER), 1, file);
its reading 8 bytes instead of 6, anyone know why?
When i break it up into 2 freads ...
fread(&ChunkHeader.ChunkID, sizeof(WORD), 1, file);
fread(&ChunkHeader.ChunkLength, sizeof(DWROD), 1, file);
it works fine.
sizeof(WORD) = 2;
sizeof(DWORD) = 4;
sizeof(_3DSCHUNKHEADER) = 8;
Im Confused.
Edited by - SoGreen on August 9, 2001 4:58:17 PM
There's always something smaller and something bigger. Don't sweat the small stuff and don't piss off the big stuff :)
Compilers can do this kind of thing to get optimization. Read you compiler documentation to find out more specific information.
Ahh, I didnt think of that, your probably right, time to do some reading, thanks. :p
There's always something smaller and something bigger. Don't sweat the small stuff and don't piss off the big stuff :)
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement