区分两个不同的结构,嵌套在一个联合中,具有C

时间:2015-10-17 02:38:58

标签: c arrays struct unions discriminator

鉴于这个快速完成的示例,我希望能够通过公共属性(animalscolor)搜索mainFoodSource数组,并仅输出{{1} },或bears s指定了匹配属性。

鉴于我的snake数组的定义如下:

animals

我如何能够使用struct animal{ char key; //I believe this is a correct usage of a discriminator union myUnion{ char mainFoodSource[10]; int numLimbs : 3; struct bear{ char blackOrBrown[5]; float height; //in feet standing } b; struct snake{ float length; char mainColor[20]; } s; } u; } animals[20]; 区分数组中的每个元素bearsnake;我已经在联盟之前提出了?

1 个答案:

答案 0 :(得分:1)

它只是基于您在要求中解释的内容的建议。

让变量键存储' b'用来表示它的熊和“熊”。如果它是一条蛇。

myUnion将分配最大内存(sizeof(float)+ sizeof(char [20]);

尝试将mainColor和mainFoodSource放在一个struct变量中,以防止混淆。