【发布时间】:2015-10-17 02:38:57
【问题描述】:
鉴于这个快速完成的示例,我希望能够通过公共属性(color 或 mainFoodSource)搜索 animals 数组并仅输出 bears 或 snakes指定的匹配属性。
鉴于我的 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];
如何使用char key 区分数组中的每个元素是bear 还是snake;我放在联合之前?
【问题讨论】:
-
为什么 mainFoodSource 和 numLimbs 是工会的成员?
-
您需要更多地了解类(基类和派生类)、继承等的概念。您可能需要为不同的动物派生类,然后将它们存储在基类类型中数组或类似的东西
-
在 C 中编程时没有“类”。对于这个问题,我已经将信息存储在头文件中,并且必须有一个交互式选项,以便根据搜索仅打印某些功能.一切都很完美......除了我无法在同一个数组中的两个不同结构之间破译。
标签: c arrays struct unions discriminator