Linux学习笔记:内核代码编码风格
2010-10-07 22:16
441 查看
# 缩进
使用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。
相关文章推荐
- 为AM335x移植Linux内核主线代码(4)booting-without-of.txt学习笔记上
- linux 驱动学习笔记02--应用实例:在内核中新增驱动代码目录和子目录
- 为AM335x移植Linux内核主线代码(5)booting-without-of.txt学习笔记中
- 为AM335x移植Linux内核主线代码(6)booting-without-of.txt学习笔记下
- Linux内核学习笔记
- Linux 3.x 内核学习笔记——x86 64位内存管理
- Linux内核学习笔记五——中断推后处理机制
- 【学习笔记】编译Linux内核(上)--编译基于x86平台的Linux内核的过程
- [转] Linux内核代码风格 CodingStyle [CH]
- Linux学习笔记之内核线程
- 传智播客c/c++公开课学习笔记--Linux网络流媒体服务器的核心代码揭秘
- linux内核学习初笔记(2)u-boot执行第一阶段为什么不移动bss段到sdram
- Linux 内核设计与实现学习笔记之第一章Linux内核简介和第二张从内核出发
- Linux 3.x 内核学习笔记——页面的周转
- TQ2440 学习笔记—— 34、移植 Linux 内核【 Makefile 分析 】
- linux内核内存管理学习笔记
- Linux学习内核移植相关笔记第1部分
- 学习笔记 --- LINUX应用调试之修改内核输出应用程序的段错误信息
- Linux 3.x 内核学习笔记——x86 64位内存管理
- Linux内核学习笔记之系统启动(一)