这意味着最好(在标题中):
static inline int max(int a, int b)
{
return a > b ? a : b;
}
Run Code Online (Sandbox Code Playgroud)
比
#define MAX(a, b) ((a) > (b) ? (a) : (b))
Run Code Online (Sandbox Code Playgroud)
由于前者将其参数声明为int,以及结果
(因此,如果您编写代码max(3.14, "pi"),您的C编译器会清楚地抱怨,但如果您使用宏,那么错误会更加神秘或不被注意)
函数处于比宏更高的级别,宏只是文本替换.
由于函数是static,它在C文件的外部不可见#include,因此当你用这个链接几个C文件时,不会有任何"符号重新定义"的冲突.
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |