KAIHATSUGIKEN GROUP

C PROGRAMMING LANGUAGE




********************************************************************************
22 構造体・共用体の入れ子
************
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};          /* 共用体sizeの型枠宣言 */
struct zubon{char color[5];unin size q;}x,y;
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;     /* char型のtype;int型のwaist */
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;/* zubonの型枠、変数x,yの同時宣言 */
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;		/* 構成要素 color[5] */
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;/*構造体構成要素に共用体size変数q */
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;/* q:char型のtypeかint型のwaist */
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;
sprintf(s.color,"red");			  
x.q.type='L';					       /* x.colorにredを代入 */
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;						/* x.q.typeにLを代入 */
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;
sprintf(s.color,"red");
x.q.type='L';/* x.q.typeは構造体xの構成要素の共用体qの構成要素typeを意味する */
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);			/* y.colorにblueを代入 */
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;					       /* y.q.waistに76を代入 */
printf("%s,%c\n",x.color,x.q.type);
printf("%s,%d\n",y.color,y.q.waist);
}
****
red,L
blue,76
****
main()
{
union size{char type:intwaist;};
struct zubon{char color[5];unin size q;}x,y;
sprintf(s.color,"red");
x.q.type='L';
sprintf(y.color,"blue");
y.q waist=76;
printf("%s,%c\n",x.color,x.q.type);		/* x.color,x.q.typeを表示 */
printf("%s,%d\n",y.color,y.q.waist);		/* y.color,y.q.waistを表示 */
}