编程好习惯
炸鸡叔
Done is better than perfect
展开
-
【编程好习惯】利用编程语言特性提高程序执行效率
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/252954利用编程语言的特性不但能简化程序,而且还能提高程序的执行效率。先看一个使用sizeof()提高程序效率的例子程序,图1是没有使用sizeof()之前的代码,其背景信息需要在此做一个交代。其中,alarm_string变量是定义为长度是255的char数组,转载 2014-03-19 08:29:22 · 1130 阅读 · 0 评论 -
【编程好习惯】只暴露必要的变量和函数
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/277424在设计一个软件模块时,应当做到尽可能少地暴露只在模块内部使用的变量和函数,这可以通过使用static关键字做到。当一个内部变量或函数并没有被声明成static的话,那意味着所设计的模块存在“洞”。通过这些“洞”其它的模块可以窥视到模块的内部实现,或通过转载 2014-04-02 09:30:11 · 993 阅读 · 0 评论 -
【编程好习惯】复用代码以提高可维护性
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/263932代码复用在软件开发中存在两个层次。第一个层次是,在设计一个新的软件功能或是开发一个新的项目时,复用已存在的软件模块,这种复用或许称之为设计复用更好。另一个层次是,程序员在开发一个软件模块时,模块的内部应尽可能地复用。从编程习惯的角度来看,这里指的是后者。转载 2014-03-21 14:01:39 · 924 阅读 · 0 评论 -
【编程好习惯】判断函数的返回值
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/258925调用一个函数后要检查函数的返回值,以决定程序是继续应用逻辑处理还是出错处理,这理应是一个常识,但在现实中,却存在大量不检查函数返回值的代码。既然是常识,但却得不到重视,这不能简单地说程序员不知道其危害性。相信读者也明白不检查函数的返回值其危害是什么,因此,转载 2014-03-31 11:41:37 · 1221 阅读 · 0 评论 -
【编程好习惯】恰当使用goto语句
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/248828goto语句在C/C++语言中可谓是“臭名昭著”,乃至有的书(或公司的编程规范)提出禁用goto语句的说法。其结果就是,造成有的程序员一看到goto语句在某程序中被使用,就本能地认为这个程序写得很“垃圾”。此外,也使得有些程序员因为使用了goto语句而觉得转载 2014-03-31 11:46:43 · 999 阅读 · 0 评论 -
【编程好习惯】合理运用静态全局或局部数组
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/247388这里的“合理运用”并不是指“使用全局数组都是合理的”,而是指在没有办法需要使用全局变量的情况下,或者使用全局数组能带来一定的好处时,可以酌情使用静态全局数组。使用静态全局数组的前提是,这一数组的拥有者(任务或模块)具有全局生命周期。所谓全局生命周期是指,其转载 2014-03-20 10:23:34 · 1427 阅读 · 0 评论 -
【编程好习惯】借助隐式初始化简化程序逻辑
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/271278在图1中示例了三个API的原型,分别是mprotector_init()、mprotector_fini()和mprotector_section_add()。假设mprotector_section_add()将会被多个任务调用以用于初始化各任务相关的一转载 2014-03-20 10:04:12 · 813 阅读 · 0 评论 -
【编程好习惯】减少搜索头文件的目录数
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/1250264假设存在下图所示的项目目录结构。如果存在如下包含头文件的代码,则大多的项目中需要通过“-I foo”和“-I bar”指明两个搜索头文件的目录。12foo.c#inclu转载 2014-03-20 09:57:19 · 770 阅读 · 0 评论 -
【编程好习惯】引入中间变量使程序更易读
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/859794今天查看自己为《专业嵌入式软件开发》一书所写的代码时发现,个别函数由于没有引入中间变量,使代码行既长又不易读。重构前后的代码如下所示。重构前:if (TIMER_STARTED == _handle->state_) { tim转载 2014-03-20 09:55:36 · 981 阅读 · 0 评论 -
【编程好习惯】屏蔽编程语言特性
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/228239定义数组是做软件开发经常需要用到的最基本的编程语言功能之一,下面示例了采用数组保存一个会话ID的一段简化代码。#define SESSION_ID_LEN_MIN 1#define SESSION_ID_LEN_MAX 256c转载 2014-03-31 11:48:41 · 918 阅读 · 0 评论 -
【编程好习惯】判断失败而不是成功
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/172180先看下面一段代码。if (bbmt_physap_alarm_init () == RV_SUCC){ if (bbmt_trx_alarm_init () == RV_SUCC) { if (bbm转载 2014-03-19 19:15:52 · 868 阅读 · 0 评论 -
【编程好习惯】使用空格增加可读性
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/172242对于下面的代码。void push_back(dll_node_t &_node){ dll_node_t *p_next; dll_node_t *_p_prev=tail_; if(_p_prev==0)转载 2014-03-19 19:19:36 · 1244 阅读 · 0 评论 -
【编程好习惯】精确包含头文件
本文出自 “至简李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/275313请注意这里用的是“精确”而不是“正确”,之所以不说正确,那是因为如果头文件没有被正确地包含的话,编译器是不会生成最终的目标代码的。那用精确一词想表达除正确之外的什么意思呢?包含两层意思。第一层意思是,只包含必需的头文件。图1是一个简单的示例程序,先转载 2014-03-26 10:01:36 · 709 阅读 · 0 评论