2013-07-14 79 views
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)宏更具可讀性更好的辦法?可能嗎?謝謝!

+2

我說「不要用宏」 – Rapptz

回答

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; 
} 
+0

甚至可以使你自己的'min'的功能,如果你不希望包括'algorithm'。 – Rapptz

+0

@Rapptz:對,我已經擴大了答案。 – jxh

相關問題