Linux学习笔记:内核代码编码风格

# 缩进
使用8字符宽的缩进,使缩进更清晰。
如果缩进超过3级,要考虑修改函数,可能过于复杂。
case和switch对齐。

# 断开过长的行、字符串

# 使用括号
除了函数,其他情况下 { 不单独占一行。

# 命名
不使用大小写混排的风格。
不包含类型。
全局变量命名要有描述性。
局部变量命名要简短。

# Typedef
应该避免使用,会影响代码的可读性。

# Function
函数的长度与复杂度、缩进层级成正比。函数不应过长,不应由太深的缩进层级。

局部变量的个数不能过多,小于5~10个。

# Goto在特殊情况下可以使用

# 注释
清晰的代码不需要过多的注释。
注释要说明what,而不是how。不要试图解释代码是如何工作的。
在函数头前注释,说明what,函数体内不要有过多的注释。

# 数据结构
对于多个线程共享的数据,使用引用计数、Locking保护。

引用计数:是内存管理技术。避免访问已经销毁的数据。
Locking:保持数据的完整性。

# Macro
用大写字母命名。
表达式必须用括号。
不能包含控制流,如return。
不能引用局部变量。
定义多行语句时,包含在do-while语句块中。

# 内存分配
格式:p = kmalloc(sizeof(*p));
这里推荐的方式和自己平时使用的不太一样:1) sizeof中没有使用类型,这样避免了不一致的可能性。2)返回指针不需要进行显式类型转换,C语言会完成从void* 到其它类型的转换。

# inline
避免使用inline,除非:函数小于3行,函数参数时编译时常量。
过多使用inline会导致程序规模增大,增加了读硬盘的次数,执行效率反而降低。

# 函数返回值的处理
有两种返回值处理风格:
1) error-code
0~success, others-错误

2) boolean
0-false, 1-true

使用规则:函数名称是动作、或命令,用风格1;函数名是判定,用风格2。



# 缩进
使用8字符宽的缩进,使缩进更清晰。
如果缩进超过3级,要考虑修改函数,可能过于复杂。
case和switch对齐。

# 断开过长的行、字符串

# 使用括号
除了函数,其他情况下 { 不单独占一行。

# 命名
不使用大小写混排的风格。
不包含类型。
全局变量命名要有描述性。
局部变量命名要简短。

# Typedef
应该避免使用,会影响代码的可读性。

# Function
函数的长度与复杂度、缩进层级成正比。函数不应过长,不应由太深的缩进层级。

局部变量的个数不能过多,小于5~10个。

# Goto在特殊情况下可以使用

# 注释
清晰的代码不需要过多的注释。
注释要说明what,而不是how。不要试图解释代码是如何工作的。
在函数头前注释,说明what,函数体内不要有过多的注释。

# 数据结构
对于多个线程共享的数据,使用引用计数、Locking保护。

引用计数:是内存管理技术。避免访问已经销毁的数据。
Locking:保持数据的完整性。

# Macro
用大写字母命名。
表达式必须用括号。
不能包含控制流,如return。
不能引用局部变量。
定义多行语句时,包含在do-while语句块中。

# 内存分配
格式:p = kmalloc(sizeof(*p));
这里推荐的方式和自己平时使用的不太一样:1) sizeof中没有使用类型,这样避免了不一致的可能性。2)返回指针不需要进行显式类型转换,C语言会完成从void* 到其它类型的转换。

# inline
避免使用inline,除非:函数小于3行,函数参数时编译时常量。
过多使用inline会导致程序规模增大,增加了读硬盘的次数,执行效率反而降低。

# 函数返回值的处理
有两种返回值处理风格:
1) error-code
0~success, others-错误

2) boolean
0-false, 1-true

使用规则:函数名称是动作、或命令,用风格1;函数名是判定,用风格2。



转载于:https://www.cnblogs.com/weichsel/archive/2010/10/07/1845289.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值