- 我有两个闭合和打开的二维数组
我定义了 2 个宏 min(a,b) 和 max(a,b) 为
#define min(a,b) (a<b?a:b) #define max(a,b) (a>b?a:b)
我在我的代码中使用了如下表达式:
max( close[i-1][ii], open[i-1][ii] ) < max( close[i-2][ii], open[i-2][ii] )
但是,这会返回以下警告:
warning: comparisons like X<=Y<=Z do not have their mathematical meaning
我相信预处理器正在做某种事情
a<b<c
替换可能解释编译器的警告。我该如何解决这个问题?
最佳答案
改用 std::max 和 std::min
您的宏会以您使用它们的方式产生副作用。
关于c++ - 将比较运算符与宏结合使用时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074824/