在C语言中函数中使用枚举类型和结构

枚举值的定义

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;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值