c - 用于定义 min 函数的宏

标签 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]))

谢谢。

最佳答案

如果你想要一个最小定义宏,你需要这样做

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

就像评论中所说,宏需要标识符而不是数组,甚至不需要变量。但这个宏是注释类型安全的。为什么不使用 fmax 和 fmin?更好,而且您不必创建宏

关于c - 用于定义 min 函数的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33055439/

相关文章:

c - 将在打开时清除文件内容导致错误 C

c - 使用 fscanf 读取文件时丢失数据

C 字符串赋值给出段错误

c - 编译器如何在基本 ANSI C 类型和所选处理器之间建立链接

c - 如何为一组 pthreads 共享互斥锁?

c - 生产者消费者问题中的竞争条件

c - 如何比较指针和整数?

c - 初始化堆栈时出现段错误

c - MPI_Send/MPI_Recv : count of elements or buffer size?

C 标准库的完整在线引用?