C 에서 Enum 의 크기는 컴파일러에 따라 변할 수 있다.
Debug 빌드에서는 4바이트로 빌드가 되는데 Release 빌드에서는 1바이트로 빌드가 되는 현상이다.
해결 방법은 Enum 의 크기를 미리 조절 해 주는 것이다.
ex)
enum testEnum1 { VAL_1 = 0, VAL_2, VAL_3 } enum testEnum2 { VAL_1 = 0, VAL_2, VAL_3, EOE = 0xffffff; }
testEnum1 의 경우 1바이트로 컴파일이 되는 경우가 발생하나
testEnum2 의 경우 마지막에 사용하지 않는 값을 이용해서 4바이트로 크기를 변환 한 것이다.
'Development > C++' 카테고리의 다른 글
int* 와 char* 의 차이점 (0) | 2015.11.03 |
---|---|
addr2line 사용법 (1) | 2015.10.06 |
language string '"c"' not recognized (0) | 2014.10.31 |
error C2243: '형식 캐스팅' : ...(으)로의 변환이 있지만 액세스할 수 없습니다. (0) | 2014.05.15 |
error C2360: 'value' 초기화가 'case' 레이블에 의해 생략되었습니다. (0) | 2014.05.15 |