十、空格与空行
1、 空格与关键字
空格使用方式(主要)取决于它是用于函数还是关键字。大多数关键字后要加一个空格。
值得注意的例外是:
sizeof、 typeof、alignof和__attribute__。
例如: s = sizeof(struct file);
下列在这些关键字之后放一个空格:
if, switch, case, for, do, while
if (value_a > value_b){
do {
cmd_list;
}while (value_c);
}
2、空格与声明
当声明指针类型或者返回指针类型的函数时,“*”的首选使用方式是使之靠近变量名或者函数名,而不是靠近类型名。例子:
char *linux_banner;
unsigned long long memparse(char *ptr, char **retptr);
char *match_strdup(substring_t *s);
3、空格与操作符
在大多数二元和三元操作符两侧使用一个空格,例如下面所有这些操作符:
= + - < > * / % | & ^ < = >= == != ? :
例:value_a = value_b + value_c;
一元操作符后不要加空格:
& * ++ -- ~ ! sizeof typeof alignof __attribute__ defined
例:char *p = (char *)&value_b;
“.”和“->”结构体成员操作符前后不加空格。
4、空格与小括号
不要在小括号里的表达式两侧加空格。
5、空行是对代码块整洁的有效微调,主要是将语句与语块分类。