例如,我有一個簡單的宏任何方式來保持內部公共宏?
#define MIN(a, b) (a) < (b) ? (a) : (b)
,我想用
MIN(pow(2, 3) , 10);
內部共提供了麻煩。我可以做以下
int a = pow(2, 3);
MIN(a, 10);
我找的就是由像保持pow(2, 3)
宏更具可讀性更好的辦法?可能嗎?謝謝!
例如,我有一個簡單的宏任何方式來保持內部公共宏?
#define MIN(a, b) (a) < (b) ? (a) : (b)
,我想用
MIN(pow(2, 3) , 10);
內部共提供了麻煩。我可以做以下
int a = pow(2, 3);
MIN(a, 10);
我找的就是由像保持pow(2, 3)
宏更具可讀性更好的辦法?可能嗎?謝謝!
您可以使用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;
}
我說「不要用宏」 – Rapptz