打印
[AVR单片机]

C语言初学者编程规范—变量与结构

[复制链接]
2204|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qin552011373|  楼主 | 2013-8-9 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 谨慎使用全局(公共)变量(1)去掉没必要的公共变量。公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度。

(2)仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。在对变量声明的同时,应对其含义、作用及取值范围进行注释说明,同时若有必要还应说明与其它变量的关系。

(3)防止局部变量与公共变量同名——通过使用较好的命名规则来消除此问题。
2 数据类型间的转换(1)编程时,要注意数据类型的强制转换。当进行数据类型强制转换时,其数据的意义、转换后的取值等都有可能发生变化,而这些细节若考虑不周,就很有可能留下隐患。

(2)对编译系统默认的数据类型转换,也要有充分的认识。
示例:如下赋值,多数编译器不产生告警,但值的含义还是稍有变化。
char chr;
unsigned short int exam;
chr = -1;
exam = chr; // 编译器不产生告警,此时exam为0xFFFF。

(3)尽量减少没有必要的数据类型默认转换与强制转换。例如,所有的 unsigned类型都应该有后缀“U”以明确其类型。

(4)合理地设计数据并使用自定义数据类型,避免数据间进行不必要的类型转换。

(5)对自定义数据类型进行恰当命名,使它成为自描述性的,以提高代码可读性。注意其命名方式在同一产品中的统一,并且保证没有多重定义。使用自定义类型,可以弥补编程语言提供类型少、信息量不足的缺点,并能使程序清晰、简洁。
示例:可参考如下方式声明自定义数据类型。下面的声明可使数据类型的使用简洁、明了。
typedef unsigned char  BYTE;
typedef unsigned short WORD;
typedef unsigned int   DWORD;

下面的声明可使数据类型具有更丰富的含义。
typedef float DISTANCE;
typedef float SCORE;

(6)不要用八进制数——整型常数以”0“开始会被认为是8进制。示例:
code[1]=109
code[2]=100
code[3]=052
code[4]=071
如果是对总线消息初始化,会有危险。
评分
参与人数 1威望 +3 收起 理由
shenpingbing + 3 很给力!

相关帖子

沙发
zhoufei411| | 2013-8-9 16:13 | 只看该作者
不错!顶一个!

使用特权

评论回复
板凳
何仔| | 2013-8-15 09:07 | 只看该作者
很好!!!

使用特权

评论回复
地板
hanbing333444| | 2013-8-25 12:55 | 只看该作者
好帖子

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:勿在浮沙筑高台。 广州电子工程师朋友交流群,电子行业相关朋友交流技术,畅谈未来,活动聚会交友群。21ic广州网友联谊群:462553656

427

主题

4543

帖子

11

粉丝