프로그래밍 C언어
상수 열거형 (Enumeration)
게임첫걸음
2024. 8. 20. 17:23
#include <stdio.h>
#define IDLE 7 //디버깅할 때 7이 안나옴
enum EAnimation //상수를 만드는 개념
{
kIdle = 10, kWalk, kRun, //초기화값에 따라 이후는 ++1씩 출력됨 // 디버깅할 때 초기화값을 읽음.
JUMP = 123, FAIL, Attack, Die //이렇게되면 10, 11, 12, 123, 124, 125, 126이 출력됨.
};
void main()
{
// 열거체, 열거형(Enumeration)
printf("kIdle: %d\n", kIdle); //kIdle: 10
printf("kWalk: %d\n", kWalk); //kWalk: 11
printf("kRun: %d\n", kRun); //kRun: 12
printf("JUMP: %d\n", JUMP); //JUMP: 123
printf("FALL: %d\n", FAIL); //FAIL: 124
printf("Attack: %d\n", Attack); //Attack: 125
printf("Die: %d\n", Die); //Die: 126
//kIdle Size: 4 byte(상수이기 때문에. int 메모리값
printf("kIdle Size: %d byte\n", sizeof(kIdle));
// 열거형 변수
enum EAnimation anim; //anim이라는 열거형 변수
anim = 789; //C, C++에서는 다른 값도 저장 가능
printf("anim: %d\n", anim); //anim: 789
}
- 열거형 상수에 사용하는 enum에 속한 데이터에 값을 저장, 여기서 초기화를 하지 않으면 0부터 시작하여 1씩 증가값을 가집니다.
- 초기화를 했다면 초기화한 데이터의 위치의 다음 데이터에 1씩 증가하는 값을 각 데이터에 초기화합니다. 위는 kIdle = 10, JUMP = 123으로 초기화합니다.
- 위의 코드상 kIdle, kWalk, kRun 는 10, 11, 12의 값을 가지고 JUMP, FAIL, Attack, Die는 123, 124, 125, 126의 값을 가지게 됩니다.
- C, C++언어에서는 상수를 다룰 때 int를 자동 적용하여 4byte 크기를 가지게됩니다. 때문에 kIdle Size는 4byte가 출력됩니다.
끝