有个不懂的问题请教
#define DATA_UNSET \
data_type_t type; \
buffer *key; \
int is_index_key; /* 1 if key is a array index (autogenerated keys) */ \
struct data_unset *(*copy)(const struct data_unset *src); \
void (* free)(struct data_unset *p); \
void (* reset)(struct data_unset *p); \
int (*insert_dup)(struct data_unset *dst, struct data_unset *src); \
void (*print)(const struct data_unset *p, int depth)
typedef struct data_unset {
DATA_UNSET;
} data_unset;
typedef struct {
DATA_UNSET;
int count;
} data_count;
main(){
data_count *dc;
...=(data_unset *)ds;
}
实在不理解为什么可以这样强制转换,虽然两个结构里面变量内容差不多相同,但是可以这样操作码?谢谢