C++ #defining enum states

C++ #defining enum states

本文关键字:states enum #defining C++      更新时间:2023-10-16

我想知道当我将所有枚举的所有状态定义到他们的较短的对方时,我是否做出了一个好的决定:只是要整理代码。
代码:
枚举:

enum class ESelectedCharacterState : uint8
{
    SS_WantsWalk,
    SS_WantsJog,
    SS_WantsCrouch,
    SS_WantsProne,
    SS_WantsJump
};

定义:

#define WantsWalk ESelectedCharacterState::SS_WantsWalk
#define WantsJog ESelectedCharacterState::SS_WantsJog
#define WantsCrouch ESelectedCharacterState::SS_WantsCrouch
#define WantsProne ESelectedCharacterState::SS_WantsProne
#define WantsJump ESelectedCharacterState::SS_WantsJump

没有#dedined Enum状态的情况:

switch (StateSelected)
    {
    case ESelectedCharacterState::SS_WantsWalk:
        break;
    case ESelectedCharacterState::SS_WantsJog:
        break;
    case ESelectedCharacterState::SS_WantsCrouch:
        break;
    case ESelectedCharacterState::SS_WantsProne:
        break;
    case ESelectedCharacterState::SS_WantsJump:
        break;
    default:
        break;
    }

#Defined Enum状态的情况:

switch (StateSelected)
    {
    case WantsWalk:
        break;
    case WantsJog:
        break;
    case WantsCrouch:
        break;
    case WantsProne:
        break;
    case WantsJump:
        break;
    default:
        break;
    }

这实际上是一小部分代码,但我在项目中经常使用此枚举。

使用typedef是实现此目的的一种更干净的方法,使您的enum的类型短。

typedef ESelectedCharacterState ESCS;