有一个结构
typedef struct _pack_t {
char tag[4];
int type;
size_t size;
size_t offset;
char data[0];
} __attribute__((packed)) pack_t;
并且有一个定义
#define PACK_OFFSET ((size_t)((pack_t *)0)->data)
定义是什么意思?以及如何理解指针“0”?