#define MIN(x,y) (x)<(y)?(x):(y)
int i=10, j=15, k;
k = 10 * MIN(i, j);
printf("%d", k); // 輸出 15
k = 10 * (i) < (j) ? (i) : (j);k = (10 * i) < j ? i : j;10*10=100 < 15 為假,取 j=15。#define MIN(x,y) ((x)<(y)?(x):(y)) // 外層加括號
// 或更安全
#define MIN(x,y) ({ typeof(x) _x=(x); typeof(y) _y=(y); _x<_y?_x:_y; }) // GNU C 擴展
inline constexpr 函數/模板替代宏,享受類型安全與作用域。宏展開看優先級,外層括號少不了,C++ 改用 inline 函數更安心。