枚举值的定义
enum eMovePriorityLevel {
eMovePriorityLevel_cant_move_unknown,
eMovePriorityLevel_cant_move_by_win, ///< 不能移动-已经胜利
eMovePriorityLevel_wall, ///< 不能移动-遇到了墙
eMovePriorityLevel_cant_move_by_go_twice, ///< 不能移动-已经走了2次
eMovePriorityLevel_can_move_by_go_once, ///< 可以移动-已经走了一次
eMovePriorityLevel_can_move_by_door, ///< 可以移动-是门, 从来没走过
};
enum eMovePriorityLevel GetMovePriorityLevel(char cPos)
使用枚举值类型的函数实现
enum eMovePriorityLevel GetMovePriorityLevel(char cPos)
{
enum eMovePriorityLevel Level;
switch (cPos)
{
case CHAR_WALL:
Level = eMovePriorityLevel_wall;
break;
case CHAR_DOOR:
Level = eMovePriorityLevel_can_move_by_door;
break;
case CHAR_EXIT:
Level = eMovePriorityLevel_cant_move_by_win;
break;
case CHAR_GO_ONCE:
Level = eMovePriorityLevel_can_move_by_go_once;
break;
case CHAR_GO_TWICE:
Level = eMovePriorityLevel_cant_move_by_go_twice;
break;
default:
Level = eMovePriorityLevel_cant_move_unknown;
break;
}
return Level;
}
在C语言的结构中,如果要定义一个自己的指针,需要声明该指针为结构,否则编译不过. 这点和C++不同. 语法更严格.
typedef struct _tag_obj_info
{
struct _tag_obj_info* pPrev; ///< error : _tag_obj_info* pPrev;
struct _tag_obj_info* pNext;
char cFlags;
size_t nBlockIndexBegin;
size_t nBlockIndexEnd;
}TAG_OBJ_INFO;