问题:枚举变量
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
};