열거 형 멤버 (식별자가 아닌 값)를 문자열로 변환해야합니다. MACRO (TYPE_A)에서는 작동하지만 enum 값 (typeA)에서는 작동하지 않는 다음을 시도했습니다. 제 의견으로는 조금 이상합니다.열거 형 멤버의 문자열 화
어떻게해야할까요?
#define _tostr(a) #a
#define tostr(a) _tostr(a)
typedef enum _SPECIAL_FOLDER_ID {
typeA = 3,
typeB = 4,
} SPECIAL_FOLDER_ID;
#define TYPE_A 3
int main() {
//this is working, but the information is a macro (TYPE_A)
printf("The string is " tostr(TYPE_A) ".\n");
//this is not working for typeA (defined in an enumeration)
printf("The string is " tostr(typeA) ".\n");
return 0;
}
출력은 다음과 같습니다 출력의 두 번째 줄은 "문자열은 3입니다"될 수 있도록
The string is 3. The string is typeA.
내가 어떤 방법으로 코드를 수정해야
감사합니다.
추신 : printf를 사용하여 값을 인쇄하고 싶지 않습니다. 그 값을 포함하는 정적 문자열이 필요합니다. 나는 결과를 테스트하기 위해서만 printf를 사용한다 ...
이상한 요구 사항을 자세히 설명해주십시오. 문자열이 필요하면 printf() 대신 sprintf()를 사용할 수 있습니다. – qrdl