静态内联函数比宏更受欢迎。他们 提供类型安全。
这是什么意思?任何人都可以解释并在可能的情况下提供一个例子吗?
答案 0 :(得分:5)
这意味着最好(在标题中):
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编译器会抱怨很清楚,但如果您使用宏,那么错误会更加神秘或不被注意)
函数的级别高于宏,这只是简单的文本替换。
由于该函数是static
,因此在#include
标题所在的C文件外部不会显示它,因此在没有任何“符号重新定义”冲突时你用这个链接几个C文件。