我有2个枚举,2种颜色的颜色和13种车型的车型.我有一个汽车结构,有两个相应的成员.如果我的结构在数组中,如何通过循环分配枚举值?
enum carType {A, B, C, D, E, F, G, H, I, J, K, L, M};
enum color {BLACK, WHITE};
typedef enum carType CarType;
typedef enum color Color;
struct car {
CarType myCarType;
Color myColor;
};
typedef struct car Car;
void createGarage(Car *garage)
{
}
main()
{
Car garage[26];
createGarage(garage);
}
Run Code Online (Sandbox Code Playgroud)
如何在我的车库阵列中循环,并确保每种车型都有黑色和白色两种颜色?
我知道我的车库阵列中有26个空格,所以我知道我可以使用for循环,但我怎么能完全完成任务呢?
您应该为每个元素添加一个额外的元素来enum保存大小,这样您就可以循环遍历所有值.
enum carType {A, B, C, D, E, F, G, H, I, J, K, L, M, carType_size};
enum color {BLACK, WHITE, color_size};
void createGarage(Car *garage)
{
for (int t = 0; t < carType_size; t++) {
for (int c = 0; c < color_size; c++) {
garage->carType = t;
garage->color = c;
garage++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这取决于enums默认顺序分配值的事实0.如果你有一个enum用特定值覆盖它的地方,这将不起作用,但这是一种不常见的风格.
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |