扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
第六章:你的代码乱七八糟
没什么,我们都遇到过。你可能从老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)是不存在的(内核之外的垃圾回收效率不高),这意味着你_必须_使用引用计数。
引用计数的使用能避免锁的使用,使不同的用户能够并行使用数据结构 - 不需要担心结构会因为睡眠而突然消失。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者