Linux Kernel 代码风格

 

http://www.kernel.org/doc/Documentation/CodingStyle

 

第一章:缩进

  • 缩进8个字符
  • 不使用3层以上的缩进
  • switch的缩进:swithc和case对齐

 

 

  • 不将多条语句放在同一行

 

第二章:

  • 超过80个字符的语句要分行写
  • 子语句永远短语上层语句
  • 子语句靠右写
  • 长字符串分成若干短字符串

 

 

 

第三章:括号和空格

  • 函数的左右括号都在行首

 

 

  • 非函数(if, switch, for, while, do)左括号写在语句后,右括号在行首。

 

 

  • do-while和else例外:

 

 

 

  • 只有一条语句的时候不用括号

 

  • 但其中仅有某些分支有一条语句,其他分支有多条语句的情况除外

 

 

空格:

  • 大多数关键字后留一个空格(if, switch, case, for, do, while)
  • 某些关键字后不留空格(sizeof, typeof, alignof)
  • 括号两侧不留空格

s = sizeof(struct file);

  • 而不是

s = sizeof( struct file );

  • 声明指针时,*靠近数据名或函数名而不是类型名

 

  • 二元或三元操作符前后留有空格

=  +  -  <  >  *  /  %  |  &  ^  <=  >=  ==  !=  ?  :

  • 一元操作符不留空格

&  *  +  -  ~  !  sizeof  typeof  alignof  __attribute__  defined

  • 后缀加减之前和前缀加减之后(++,--)不留空格
  • 结构成员操作符(.,->)前后不留空格
  • 行末不留空格

 

第四章:命名

  • 全局变量和全局函数必须使用描述性的名称,

 

如"count_active_users()" 而不使用 "cntusr()"

  • 局部变量使用短小明确的变量名,如i或tmp

 

第五章: Typedefs

  • struct, pointer等不使用typedef。

例:直接使用struct virtual_container *a;

 

第六章:函数

  • 函数必须短小且只完成一件事,一到两个屏幕长(ISO/ANSI定义屏幕为80*24)
  • 局部变量不超过5-10个
  • 函数间留有一个空行,如果使用EXPORT*宏,它应该紧跟在函数后

 

 

第七章:适当的时候使用goto?

 

第八章:注释

  • 只注释WHAT而不是HOW
  • 使用C89的/*...*/而不是C99的//...
  • 长注释使用的格式:

 

  • 每个变量声明占一行(不在同一行用逗号隔开声明多个变量)留有注释空间。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值