问题:枚举变量
result我并没有把direction的值赋值给它,但是每次测试的结果都是switch这里执行了和direction相匹配的case项,这是为什么呢?思路:我本应该是把
direction的值赋值给result,然后用result去为switch作判断的,但是没有这么做却还是可以运行出正确的结果!说明:
direction是Derived_coord()函数的形参,并且它是声明了static的
代码
void Derived_coord(int direction, int *infer_x_coord, int *infer_y_coord)
{
enum Direction result;
switch (result)
{
case North:
(infer_y_coord[0]) -= 1;
(infer_y_coord[1]) -= 2;
(infer_y_coord[2]) -= 3;
(infer_y_coord[3]) -= 4;
break;
case South:
(infer_y_coord[0]) += 1;
(infer_y_coord[1]) += 2;
(infer_y_coord[2]) += 3;
(infer_y_coord[3]) += 4;
break;
case West:
(infer_x_coord[0]) -= 1;
(infer_x_coord[1]) -= 2;
(infer_x_coord[2]) -= 3;
(infer_x_coord[3]) -= 4;
break;
case East:
(infer_x_coord[0]) += 1;
(infer_x_coord[1]) += 2;
(infer_x_coord[2]) += 3;
(infer_x_coord[3]) += 4;
break;
default:
(infer_x_coord[0]) += 1;
(infer_x_coord[1]) += 2;
(infer_x_coord[2]) += 3;
(infer_x_coord[3]) += 4;
break;
}
}
枚举类型的声明
static int direction = 0;
enum Direction
{
North = 1,
South = 2,
West = 3,
East = 4
};