有这样的陈述:
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]))
谢谢。
答案 0 :(得分:1)
如果你想要一个Min定义宏,你需要像那样
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
如评论中所述,宏需要标识符而不是数组,甚至不需要变量。但是这个宏是笔记型安全的。为什么不使用fmax和fmin?它更好,你不必创建一个宏