Linux内核代码风格摘要
2011-12-10 22:17
204 查看
第一章:缩进
制表符是8个字符避免3级以上的缩进
在switch语句中switch与case对齐
不要把多个语句放在一行里
除了注释、文档和Kconfig之外,不要使用空格缩进
不要在行尾留空格
第二章:把长的行和字符串打散
每一行的长度限制是80列第三章:大括号和空格的放置
起始大括号放在行尾,结束大括号放在行首(if、switch、for、while、do)函数的起始大括号放置于下一行开头
只有一个单独语句的时候,不用加不必要的大括号
3.1:空格
(大多数)关键字后要加一个空格不要在小括号里的表达式两侧加空格
“*”的首选方式是使之靠近变量名或者函数名
在大多数二元和三元操作符两侧使用一个空格
一元操作符后不加空格
前缀、后缀自加和自减一元操作符前后不加空格
“.”和“->”结构体成员操作符前后不加空格
不要在行尾留白
第四章:命名
使用简单的命名全局变量需要有一个具描述性的名字
不要使用匈牙利命名法
本地变量名应该简短
第五章:Typedef
不要使用类似“vps_t”之类的东西第六章:函数
函数应该简短而漂亮,并且只完成一件事情本地变量的数量不应超过5-10个
使用空行隔开不同的函数
在函数原型中,包含函数名和它们的数据类型
第七章:集中的函数退出路径
使用goto语句做一些通用的清理工作第八章:注释
注释告诉别人你的代码做了什么,而不是怎么做的使用C89“/* ... */”风格
注释数据
第九章:你已经把事情弄糟了
使用“scripts/Lindent”第十章:Kconfig配置文件
Documentation/kbuild/kconfig-language.txt第十一章:数据结构
使用引用计数第十二章:宏,枚举和RTL
定义常量的宏的名字及枚举里的标签需要大写定义几个相关的常量时,最好用枚举
宏的名字请用大写字母,不过形如函数的宏的名字可以用小写字母
cpp手册
Gcc internals手册
第十三章:打印内核消息
保证信息简单、明了、无歧义使用dev_err(),dev_warn(),dev_info()等
使用pr_debug()和pr_info()等
第十四章:内存分配
使用p = kmalloc(sizeof(*p), ...);强制转换一个void指针的返回值是多余的
第十五章:内联弊病
如果一个函数有3行以上,就不要把它变成内联函数第十六章:函数返回值及命名
如果函数的名字是一个动作或者强制性的命令,那么这个函数应该返回错误代码整数。如果是一个判断,那么函数应该返回一个“成功”布尔值。
返回值是实际计算结果而不是计算是否成功的标志的函数不受此惯例的限制
第十七章:不要重新发明内核宏
使用头文件include/linux/kernel.h第十八章:编辑器模式行和其他需要罗嗦的事情
不要覆盖别人的配置附录 I:参考
The C Programming Language, 第二版, 作者Brian W. Kernighan和DenniM. Ritchie. Prentice Hall, Inc., 1988. ISBN 0-13-110362-8 (软皮),
0-13-110370-9 (硬皮). URL: http://cm.bell-labs.com/cm/cs/cbook/
The Practice of Programming 作者Brian W. Kernighan和Rob Pike. Addison-Wesley,
Inc., 1999. ISBN 0-201-61586-X. URL: http://cm.bell-labs.com/cm/cs/tpop/
cpp,gcc,gcc internals和indent的GNU手册——和K&R及本文相符合的部分,全部可以在
http://www.gnu.org/manual/找到
WG14是C语言的国际标准化工作组,URL: http://www.open-std.org/JTC1/SC22/WG14/
Kernel CodingStyle,作者greg@kroah.com发表于OLS 2002:
http://www.kroah.com/linux/talks/ols_2002_kernel_codingstyle_talk/html/
----
参考资料:Documentation/zh_CN/CodingStyle
相关文章推荐
- Linux内核代码风格
- Linux内核代码风格 from kernel
- Linux内核代码风格
- Linux内核代码风格
- Linux 内核代码风格--Kernel Coding Style(持续更新-20170616)
- [转] Linux内核代码风格 CodingStyle [CH]
- linux内核代码风格
- Linux 内核代码风格
- Linux学习笔记:内核代码编码风格
- Linux kernel coding style 内核代码风格
- linux新内核的时钟机制代码读后感
- 为AM335x移植Linux内核主线代码(6)booting-without-of.txt学习笔记下
- Linux内核工程导论——如何贡献内核代码
- Linux内核入门-如何获取Linux内核源代码、生成配置内核
- linux 内核原代码 sched.c 的注释
- Linux内核分析:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 《linux 内核完全剖析》 vsprintf.c 代码笔记
- Linux0.11内核剖析--内核代码(kernel)--sched.c
- linux 内核启动代码解释网站
- Linux0.11内核--启动代码分析setup.s 建立页目录和页表