c++ - 使用 #ifdef 的宏不起作用

标签 c++ c

我正在使用 MACRO 定义变量 SUCESS

#ifdef SUCCESS
    #undef SUCCESS
    #define SUCCESS  0
#endif //SUCCESS

但是 Eclipse 编译器给我的错误是

symbol "SUCCESS" could not be resolved

但是如果我只写

#define SUCCESS  0

它工作正常。为什么会这样。我必须只使用 #ifdef 来写

最佳答案

像这样重写:

#undef SUCCESS
#define SUCCESS 0

这样,无论 SUCCESS 之前是否已定义,您都可以获得定义。我还删除了 #ifdef ... #endif 包装器。不需要:如果未定义目标,则忽略 #undef

关于c++ - 使用 #ifdef 的宏不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20773721/

相关文章:

c - 如何销毁c中的链表?

c - 如何测试我的驱动程序是否已加载,然后从 Linux 内核访问我的驱动程序功能?

c++ - std::list - 删除元素

c++ - 线性颜色渐变不起作用

c++ - 上传输入时出现 SIGSEGV 错误

使用 C 中的内联汇编器计算字符串的大小

c - 为什么我不能将指向 char 缓冲区的指针传递给带有参数 char** 的函数

c++ - gmock 调用隐式删除的复制构造函数

c++ - 将 C++ 中的字符串拆分并处理为不同的变量

c - strstr 未返回所需结果