이런 열거형이 정의가 되어있습니다
enum cont_list {
ABCD = -999,
DCBA,
ERFF,
KKKK = -1900,
...
/* 이후 수백개의 상수들 */
};
그리고 해당하는 열거형의 상수 이름과 동일한 문자열이 다음과 같은 문자열의 배열로 있습니다.
static const char *code_str[] =
{
"KKKK",
"ABCD",
"DCBA",
...
/* 이후 수백개의 문자열 */
};
열거형에 정의된 상수와 문자열 배열에 존재하는 문자열과 순서는 같지않습니다..
여기서 질문은
사용자로부터 입력받으면 , 그에 해당하는 상수 값을 출력을 하고자 합니다.
예를들어, 사용자가 "ABCD"를 입력하면 그에 해당하는 -999 라는 값을 찍어주고 싶습니다..
열거형에 정의한 상수 개수가 너무 많아서 하나하나 switch문으로 작성하기는 어렵습니다
문자열을 그대로 상수의 이름처럼 쓰게 하는 매크로 연산자라던가 함수가 있는지 궁금합니다.
"KKKK" 라는 문자열을 상수이름 ( printf("%d\n", KKKK); ) 처럼 쓰고싶습니다... 방법이 없을까요?