>>14
へぇ。

ヘッダ部は同じでエンベロープが数種類ある通信フォーマットにはめ込んで使ったりします。

union body{
struct format_a a_shiten_data;
struct format_a old_a_shiten_data;
struct format_a b_shiten_data;
}

struct data{
struct head header;
union body bodies;
}


struct data dat;

recv(sock,&dat,sizeof(dat));

switch(dat.type){
case 1:
dat.a_shiten_data〜
case 2:
dat.a_old_shiten_data〜
・・・
}