여러 가지 방법이있다.
typedef enum Difficulty {
Easy,
Normal,
Hard,
Lunatic
} Difficulty;
이이처럼 사용할 수 있습니다 :
void foo(Difficulty a, Difficulty b)
{
if (a > b) {
// ...
} else
// ...
}
// ...
Difficulty a = Easy;
Difficulty b = Hard;
foo(a, b);
다른 방법도 가능 클리너 솔루션은 정수 값을 증가하는 것으로 보장 열거를 사용하는 것입니다. 다음과 같이 값이 증가하는 매크로를 사용할 수 있습니다.
#define EASY 0
#define NORMAL 1
#define HARD 2
#define LUNATIC 3
현재 접근 방식도 사용할 수 있지만 상수에는 실제 문자를 사용할 이유가 없습니다. 당신은 대신 숫자 값을 사용할 수 있습니다 : 나는 그 char
상수를 사용하도록 요구 볼 수
const char EASY = 0;
const char NORMAL = 1;
const char HARD = 2;
const char LUNATIC = 3;
그리고 물론
는 지금까지 진짜 이유가 없다. 대신
int
을 사용할 수 있습니다.
첫 번째 방법 (열거 자 사용)은 일반적으로 사용하는 실제 typedef를 제공하므로 코드를 조금 더 쉽게 읽을 수 있습니다. 변수가 Difficulty
인 경우, 보유 할 것으로 예상되는 값의 종류를 즉시 알 수 있습니다.
열거자를 염두에 두어야 할 한 가지는 정수와 호환된다는 것입니다. 즉, 숫자 값을 할당 할 수 있으므로 유형 안전성을 제공하지 않습니다. 그것은 대부분 안전 코드를 쓰는 것이지 안전하지는 않습니다.
한 단어 :'enum' – Kevin
'enum {EASY, NORMAL, HARD, LUNATIC}; ' –
여러분은 상수가있을 때 대개 그들 사이의 관계를 알고 있습니다. 왜 그들 사이의 평등을 확인하겠습니까? – Maroun