我有以下代码:
#ifndef min
#define min(a,b) (((a)< (b)) ? (a) : (b))
#endif
int test(){
return min(0,1);
}
哪个工作正常。但是,如果我包含一些头文件(来自图形数据库,可以在此处找到该头文件的内容:http ://www.sparsity-technologies.com/dex ),编译器会抱怨 min 未定义,例如Dex.h 只是取消了我的 marco 定义的效果。
但是,Dex.h 不包含任何未定义的语句。我无法移动宏定义,因为它实际上包含在另一个头文件中。
出了什么问题,我该怎么办?
#ifndef min
#define min(a,b) (((a)< (b)) ? (a) : (b))
#endif
#include "gdb/Dex.h"
int test(){
return min(0,1);
}
我得到的编译器错误是:
test.c:9:16: error: 'min' was not declared in this scope