我可以取消定义EXIT_SUCCESS吗?

时间:2011-03-30 00:53:17

标签: eclipse enums mingw c-preprocessor

我想定义自己的Enumerated类型:ExitType。我是这样写的:

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:错误:无效从'int'转换为'ExitType'

编辑2 :当我在包含&lt; SDL / SDL.h&gt;之后移动了我的undefines时,错误就消失了。但是,SDL代码的GREP不会出现与EXIT_SUCCESS相匹配的任何内容。

1 个答案:

答案 0 :(得分:2)

#undef EXIT_SUCCESS应该取消定义预处理器符号EXIT_SUCCESS,这是我假设在这里进行的。但只有这样做才能做到这一点,你不会因此而破坏任何东西!