File:/home/column/Linux内核编码风格 Page3of13
{
bodyoffunction
}
全世界的异端可能会抱怨这个不一致性,呃…确实是不一致的,不过所有思维健全的人都
知道(a)K&R是正确的,并且(b)K&R是正确的。另外,不管怎样函数都是特殊的(在
C语言中,函数是不能嵌套的)。
注意结束大括号独自占据一行,除非它后面跟着同一个语句的剩余部分,比如说do语句中
的“while”或者if语句中的“else”,像这样:
do{
bodyofdo-loop
}while(condition);
和
if(x==y){
..
}elseif(x>y){
...
}else{
....
}
理由:K&R。
也请注意这种大括号的放置方式还能使空(或者差不多空的)行的数量最小化,同时不失
可读性。因此,由于你的屏幕上的新行的供应不是可回收的资源(想想25行的终端屏幕)
,你将会有更多的空行来放置注释。
仅有一个单独的语句时,不用加不必要的大括号。
if(condition)
action();
这点不适用于本身为某个条件语句的一个分支的单独语句。这时应该两个分支里都使用
大括号。
if(condition){
do_this();
do_that();
}else{
otherwise();
}
3.1:空格
Linux内核的空格使用方格(主要)取决于它是用于函数还是关键字。(大多数)关键字后
要加一个空格。值得注意的例外是sizeof、typeof、alignof和__attribute__,这些关键
字在一定程度上看起来更像函数(它们在Linux里也常常伴随小括号使用,尽管在C语言里
这样的小括号不是必需的,就像“structfileinfoinfo”声明过后的“sizeofinfo”)
所以在这些关键字之后放一个空格: