有这样的声明:
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]))
谢谢。
最佳答案
如果你想要一个最小定义宏,你需要这样做
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
就像评论中所说,宏需要标识符而不是数组,甚至不需要变量。但这个宏是注释类型安全的。为什么不使用 fmax 和 fmin?更好,而且您不必创建宏
关于c - 用于定义 min 函数的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33055439/