형들
enum Type {
V_NULL,
V_BOOL,
V_CHAR,
};
이렇게 정의가 되었다고 했을때
Type abc;
abc = V_NULL;
abc = V_BOOL;
이런식으로 하드코딩은 가능한데
char* str = \"V_NULL\";
str 변수에 enum의 엘리먼트 스트링이 저장되어있을 경우에
abc = str; 이렇게 하는게 불가능 하잖아
스트링 변수에 들어있는 엘리먼트 스트링을 어떻게 enum 엘리먼트로 변환해서 abc에 넣을 수가 있는거야?
질문이 좀 두서 없는데.. 아무리 생각해도 내 머리로는 안떠올라 형들 도움좀 부탁해 ㅠㅠ
scanf(\"%s\",str); // 사용자가 \"V_NULL\" 이나 \"V_BOOL\" 이라고 입력했다고 가정하고
abc = str; 이게 불가능하잖아
abc 에 대입할수 있는 형태는
abc = V_NULL; 이런식밖에 안되는거잖아
위의 형식 이외에 대입할 수 있는 방법이 있는건지 물어본거야 횽들.. 부탁해 횽들 ㅠㅠ
--------------------------
if(!strcmp(\"V_NULL\",str))
abc = V_NULL;
if(!strcmp(\"V_BOOL\",str))
abc = V_BOOL
if(!strcmp(\"V_CHAR\",str))
abc = V_CHAR;
이렇게 하라는 소리야? 저렇게 하면 enum 엘리먼트만 많을경우 조낸 비효율적인데 저렇게 해야하는거야?
strcmp
strcmp는 문자열이 같은지 확인하는 함수인데 이걸로 어떻게 하라는건가요?
2차원 배열 만들어서 키하고 값 넣은 다음 루프 돌려서 비교해...enum의 키는 실제 스트링으로 저장되는 값이 아님.
리플랙션 ⓑ
enum키가 실제 스트링으로 저장되는 값이 아닌건 아는데.. 사용자로부터 \"V_NULL\" 이라는 스트링을 입력받아서 TYPE 변수 abc 에 넣으려고 할때 어떻게 넣느냐 그말이야 횽
그런거 없어 볍신아 씨가 그래서 젓같은거야