用于定义最小函数的宏

时间:2015-10-10 15:05:43

标签: c

有这样的陈述:

dist[i]= min(dist[i],dist[j]+edge[j][i]);

相应的后续宏(在C中)的安全性如下:

#define MIN(d[i], edge[i][j]) (d[i] < edge[i][j] ? (d[i]) : (edge[i][j]))

谢谢。

1 个答案:

答案 0 :(得分:1)

如果你想要一个Min定义宏,你需要像那样

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

如评论中所述,宏需要标识符而不是数组,甚至不需要变量。但是这个宏是笔记型安全的。为什么不使用fmax和fmin?它更好,你不必创建一个宏