enum关键字指定了一个枚举类型。枚举类型是一种用户定义的类型,由一套叫做计数器(enumerator)的赋之以名称的常量组成。缺省情况下,第一个计数器有一个为0的值,每个后续的计数器都比前一个的值更大(除非你显示地为特定计数器指定一个值)。
定义语法:
enum enumName { enumMember , ... };
enumMember :
enumMembersName
或
enumMembersName = integerValue
实例
enum CharacterType
{
HUMAIN, // 0
MONSTER, // 1
GHOST, // 2
BIRD // 3
};
enum DisplacementMode
{
WALK,
FLY,
TELEPORT
};
然后你可以在你的函数中使用所定义的常量。
void ManageCharacterMove(Entity3D charac, CharacterType type, DisplacementMode disp)
{
switch (type)
{
case HUMAIN :
if (disp == WALK)
{
// ...
}
else if (disp == FLY)
{
// ...
}
else
{
// ...
}
break;
case MONSTER :
// ...
break;
// ...
}
}
计数器不需要具有唯一的值。每个计数器的名称都以常量方法对待,且在enum被定义的变量范围内唯一。
enum week
{
Mon = 1, // forces start at value 1
Tue, // 2
Wed, // 3
Thu, // etc
Fri,
Sat,
Sun
};
enum weekend
{
Sat, // error, Sat redefinition
Sun // error, Sun redefinition
};