Static inline functions are greatly preferred over macros. They provide type safety.
这是什么意思?有人可以解释一下吗?如果可能的话可以举个例子吗?
最佳答案
这意味着最好这样做(在标题中):
static inline int max(int a, int b)
{
return a > b ? a : b;
}
比
#define MAX(a, b) ((a) > (b) ? (a) : (b))
由于前者的参数声明为 int
,以及结果
(因此,如果您编写 max(3.14, "pi")
代码,您的 C 编译器会清楚地提示,但如果您使用宏,则错误会更加神秘或不被注意)
函数比宏处于更高的层次,宏只是愚蠢的文本替换。
由于该函数是静态
,因此它在#include
header 所在的C文件外部不可见,因此不会有任何“当您使用此方法将多个 C 文件链接在一起时,“符号重新定义”会发生冲突。
关于c - 静态内联函数比宏更受青睐。这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524225/