0

例如,我有一个简单的宏

#define MIN(a, b)   (a) < (b) ? (a) : (b)

我想用

MIN(pow(2, 3) , 10);

内部公用会带来麻烦。我可以这样做

int a = pow(2, 3);
MIN(a, 10);

我正在寻找一种更好的方式,通过保持pow(2, 3)宏来更具可读性?可能吗?谢谢!

4

1 回答 1

4

您可以std::min改用:

#include <algorithm>

//...
double x = std::min(pow(2, 3) , 10);

通常,您应该更喜欢内联函数而不是宏。如果宏的目的是让它适用于多种类型,则可以使用模板。

template <typename T>
inline T SomeFunction (T x, T y) {
    T result;
    //...do something with x and y and assign to result
    return result;
}
于 2013-07-14T02:20:02.080 回答