내 자신의 열거 형을 정의하고 싶습니다. ExitType. 나는 이렇게 썼다.EXIT_SUCCESS의 정의를 해제 할 수 있습니까?
enum ExitType{
EXIT_SUCCESS,
EXIT_FAILURE,
EXIT_OTHERTYPE
};
나는 ExitType을 반환하는 함수를 가지고있다. 일부 조건에서는 EXIT_SUCCESS를 리턴합니다. 하지만 int에서 ExitType으로 캐스팅 할 수 없다는 오류 메시지가 나타납니다. 내 IDE에서 EXIT_SUCCESS를 (를) 정의하지 않거나 static_cast<int>(EXIT_SUCCESS)
을 사용하여 붙어 있습니까? EXIT_SUCCESS가 내 EXIT_OTHERTYPE 등과 일치 할 가능성이 있습니다.
CDT, MinGW32 및 SDL과 함께 Eclipse Helios를 사용하고 있습니다. 모든 32 비트 및 최신 버전
편집 : 전 처리기로 EXIT_SUCCESS 정의 해제를 시도했습니다.
#undef EXIT_SUCCESS
#undef EXIT_FAILURE
enum ExitType{
EXIT_SUCCESS,
EXIT_FAILURE,
EXIT_OTHERTYPE,
EXIT_NOEXIT
};
결과 :
.. \ SRC \ EventManager.cpp : 12 : 7 : 오류 : 'ExitType'
편집 2에 'INT'에서 유효하지 않은 변환 : 내 정의를 해제 이동하는 경우 <SDL/SDL.h>이 포함 된 후 오류가 사라졌습니다. SDL 코드의 GREP은 EXIT_SUCCESS와 일치하는 항목을 표시하지 않습니다.
EXIT_SUCCESS는 stdlib.h에 정의되어 있습니다. 그래도 문제는 아닌 것 같습니다. 귀하의 오류에 명시 적으로 ExitType으로 캐스팅 할 수 없다고 나와 있습니다 (올바른 것, 변환에 명시 적 형변환이 필요함). ExitType에서 int 로의 변환은 내재적으로 수행 될 수 있습니다. –
'EXIT_SUCCESS' 및'EXIT_FAILURE'와 (과) 충돌하여 헤더에 ''을 사용할 수 없다면 다른 사람들이 코드를 사용할 수 없다는 점에 유의하십시오. 그것은 단기적으로 당신에게 중요 할 수도 있고 그렇지 않을 수도 있지만, 습관을 가지지 마십시오. 아니면, 표준 이름을 재정의하는 것은 나쁜 생각입니다. –