深入学习Linux系统,Linux内核编程风格
第六章:你的代码乱七八糟 没什么,我们都遇到过。你可能从老Unix用户那里听说过“GNU emacs”会自动对齐C源代码,但缺省的设置不是很好(事实上,缺省设置比胡乱敲打还糟糕 -一群使用GNU emacs猴子永远不会做出漂亮的程序)。靠!我就是用emacs的!不过现在自动对齐还算可以了。 所以,你或者彻底仍掉GNU emacs,或者采用更理智的设置。如果选择后者,你可一把下面的代码加到你的.emacs文件中:
这会定义 M-x linux-c-mode 命令。当编写Linux模块时,如果你把字符串“-*-linux-c -*-”放在文件的头两行中,这个模式就会被自动激活。还有,如果你想在编辑/usr/src/linux目录下的源文件时linux-c-mode被自动激活,你在你的.emacs文件中需要加入:
但是即使你用不了emacs,并不是世界末日:你还可以使用“indent”。又一次,GNU indent使用了和GNU emacs一样的脑死亡设置,所以你需要给它一些命令行选项。但是,这不算太坏,因为即使是GNU indent的作者们也意识到了K&R的权威性(GNU的人也不是魔鬼,他们只是在这件事上被误导了),所以你可以使用选项“-kr -i8”(表示“K&R,8字符缩进”)运行indent。“indent”有很多选项,特别是注释布局部分,你可能想看看它的man手册。但是请记住:“indent”不能修改糟糕的程序。个人觉得现在emacs对缩进对齐的处理已经不错了,问题在于你使用不同的Linux发行版,就会面对不同的.emacs文件,有时候我不得不随身携带我的.emacs文件,或者把它放在我的email的存储箱里面 第七章:配置文件 配置选项 (arch/xxx/config.in,以及所有Config.in文件)使用了有些不同的缩进方式。 代码中使用的是3字符缩进,config-选项中应该使用2字符缩进标识依赖关系。后者只应用于bool/tristat选项。对于其他选项,采用你认为最合适的缩进方式就可以了。例如:
一般来说,所有不稳定的选项应该标为CONFIG_EXPERIMENTAL。所有可能损坏数据的的选项应该标为(DANGEROUS),其他的试验选项应该标为(EXPERIMENTAL)。 第八章:数据结构 供多线程使用的数据结构应该采用引用计数(reference counts)。在内核中,垃圾回收(garbage collection)是不存在的(内核之外的垃圾回收效率不高),这意味着你_必须_使用引用计数。 引用计数的使用能避免锁的使用,使不同的用户能够并行使用数据结构 - 不需要担心结构会因为睡眠而突然消失。 ()
上一篇:Linux操作系统的Shell编程脚本欣赏 下一篇:Linux编程之:五个常见PHP数据库问题 更多相关文章
|
推荐文章
精彩文章
|