您的位置:首页 > 编程语言

编程细节积累

2013-06-04 09:15 169 查看
1.空操作循环的注意点

在有些时候我们必要用一些while (condition)或for (;condition;)这样的循环空操作。

但是这里也是一个易错点,经常习惯性的不用{},或者习惯性的加上了分号。

坏习惯

while (condition);

较好的习惯

while (condition) {

}

建议的习惯

while (condition) {

NULL;

}

在内核编程中,我们可以使用cpu_relax()来代替NULL,使CPU与能耗更加优秀

while (condition) {

cpu_relax();

}

这里如果不是较严格的退出时间,可以使用schedule()来替换cpu_relax.

2.特定参数类型的运算宏,最好使用typecheck来测试参数类型是否符合要求;

普通用法

#define MAX(a, b) (((a) > (b)) ? (a) : (b))

建议用法

#define MAX(a, b) typecheck(typename, a) && typecheck(typename, b) && (((a) > (b)) ? (a) : (b))

这里看似写的很复杂,但实际上可以利用内联函数进行代替,内联函数相对宏的最大一个优势点就是带有参数类型检测。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: