C51代码风格

有的时候自己写的代码,过了一段时间就忘了,再回头一看,发现自己也看不懂了。

因此,不光要写好说明文档,还要养成良好的代码风格。

良好的代码风格,有助于提高代码的可读性、可维护性,不仅方便自己阅读、使用,更是方便与同事之间的交流、沟通。

1、不使用拼音命名。

这是最常见的误区之一,如下图所示,用拼音定义了时、分、秒三个变量。

但是拼音的重码率太多,很容易让人摸不着头脑。

建议使用英文命名,如下图所示。

2、不使用#define定义数据类型别名。

如下图所示,用#define定义了unsigned char的别名。

由于#define只是简单的字符串替换,存在一定的隐患。

建议使用typedef,如下图所示。使用u8比uchar或uint8_t要少打点字。

3、使用#define定义常量要加括号。

如下图所示,1<<0增加括号,可以避免运算优先级的问题。

4、使用sbit定义引脚别名增加PIN前缀,并大写。

如下图所示,一眼能看出是74HC595的三个引脚,而不是变量或常量。

5、头文件要增加条件编译,防止重复编译。

如下图所示,头文件的内容只被编译一次。注意:定义的__DEFINE_H在别的文件中未使用过。

6、使用匈牙利命名,全局变量首字母为g。

如下图所示,g为global的首字母,代表全局变量。

局部变量,则没有g,如下图所示。

7、使用条件编译注释代码。

如下图所示,#if 0能让一段代码不起作用。要让代码起作用,把0写成1即可,也就是#if 1。

注意,不要用行注释来注释代码,因为别人在使用你的代码时,不知道哪几行是有用的,也不知道是怎样用。

而条件编译,只要改一下条件,就能让同一功能的代码起作用。

8、串口的调试信息,使用别名。

如下图所示,11行起作用时,debug就相当于printf。11行不起使用时,debug相当于空行。

这就能在发布代码时,关闭所有的调试信息,而不用手动一条一条的删除。

9、使用定时器中断来延时。

要是延时太长时间,不要用软件延时Delay(),而是使用定时器,如下图所示。

然后在主循环中,再进行判断。

10、使用掩码对寄存器进行位操作。

使用掩码,可以在不影响寄存器之前的值,只操作某一位,可以降低代码的耦合度。

注意:寄存器上电复位后,都有默认值,不用担心寄存器一开始没有值。

如下图所示,先定义掩码,也就是只有某一位为1,其它位均为0。

如下图所示,540行对reg1的第0位置1,541行对reg1的第1位清零。

如果要对变量使用掩码,请初始化该变量。

11、不依赖默认优先级。

如下图所示,所有运算都加了括号。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值