計算結構體字段偏移量

#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

例如:
typedef struct _XX
{
unsigned short          nWidth;               
unsigned short          nHeight;            
unsigned short          nVideoEncodeFormat;    
unsigned short          nMotionBlocks;      
unsigned char           nID[4];
unsigned long           nVideoSize;            
unsigned long           nTimeTick;            
unsigned short          nAudioSize;          
unsigned char           bKeyFrame;           
unsigned char           bVolHead;
}XX;

printf("%d %d %d %d %d %d %d %d %d %d >>> %d.\n", offsetof(XX, nWidth), offsetof(XX, nHeight), 
offsetof(XX, nVideoEncodeFormat), 
offsetof(XX, nMotionBlocks), 
offsetof(XX, nID), 
offsetof(XX, nVideoSize), 
offsetof(XX, nTimeTick), 
offsetof(XX, nAudioSize), 
offsetof(XX, bKeyFrame), 
offsetof(XX, bVolHead), 

sizeof(XX)); ide

相關文章
相關標籤/搜索