阅读编程规范收获

今天阅读了项目经理给的《嵌入式Linux编程规范》,有些问题是以前自己没有注意和没有接触过的,整理了以下3点:

 

1.  在多重循环中,应将最忙的循环放在最内层。

说明:减少CPU 切入循环层的次数。

示例:如下代码效率不高。

for (col = 0; col < 200; col++)
{
for (row = 0; row < 10; row++)
{
a[row][col] = 0;
}
}

可以改为如下方式,以提高效率。

for (row = 0; row < 10; row++)
{
for (col = 0; col <200; col++)
{
a[row][col] = 0;
}
}

这点在以前的编程中没有注意过,认为把哪个循环放在哪个层次对程序没有影响。

2.  避免循环体内含判断语句,应将判断语句置于循环体外面。

说明:目的是减少判断次数。

示例:如下代码效率稍低。

for (count = 0; count <MAX_NUMBER; count++)
{
if (type == REC_AREA)
{
sum += area[i];
}
else
{
length_sum += rec[i].length;
width_sum += rec[i].width;
}
}

    因为判断语句与循环变量无关,故可如下改进,以减少判断次数。

if (type == REC_AREA)
{
for (i = 0; i < MAX_NUMBER;i++)
{
sum += area[i];
}
}
else
{
for (i = 0; i <MAX_NUMBER; i++)
{
length_sum += rec[i].length;
width_sum += rec[d].width;
}
}

    以前认为第二种写法有两个循环结构,故采用第一种写法。

3.  某些语句经编译后产生告警,但如果它是正确的,那么应通过某种手段去掉告警信息。

说明:在Borland C/C++中,可用“#pragma warn”来关掉或打开某些告警。

示例:

#pragma warn -rvl // 关闭告警
int expl(int x)
{
    // 程序,但无return 语句。
}
#pragma warn +rvl // 打开告警

编译函数examples_fun 时本应产生“函数应有返回值”告警,但由于关掉了此告警信

息显示,所以编译时将不会产生此告警提示。

今天阅读了项目经理给的《嵌入式Linux编程规范》,有些问题是以前自己没有注意和没有接触过的,整理了以下3点:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值