忙里偷闲验证了一下很多年前刚入门C的时候的一个想法:
typedef struct msg{
int len;
char str[0];
} msg_str;
typedef struct {
int type;
int cmd;
msg_str msg;
} zynq_head;
int head_temp;
zynq_head head;
head_temp = (int)&head->msg.str[0];
head_temp = (int)head->msg.str;
经验证(head_temp *head_temp的值)上边两个写法结果相同,也就是数组名就是数组首成员的首地址。零长数组在处理网络收发不定长数据时实用性很强。
关于C语言零长数组
最新推荐文章于 2024-06-05 22:11:04 发布