阅读编程规范收获

2019-07-13 04:49发布

今天阅读了项目经理给的《嵌入式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     因为判断语句与循环变量无关,故可如下改进,以减少判断次数。 if (type == REC_AREA) { for (i = 0; i < MAX_NUMBER;i++) { sum += area[i]; } } else { for (i = 0; i     以前认为第二种写法有两个循环结构,故采用第一种写法。 3.  某些语句经编译后产生告警,但如果它是正确的,那么应通过某种手段去掉告警信息。 说明:在Borland C/C++中,可用“#pragma warn”来关掉或打开某些告警。 示例: #pragma warn -rvl // 关闭告警 int expl(int x) { // 程序,但无return 语句。 } #pragma warn +rvl // 打开告警 编译函数examples_fun 时本应产生“函数应有返回值”告警,但由于关掉了此告警信 息显示,所以编译时将不会产生此告警提示。 今天阅读了项目经理给的《嵌入式Linux编程规范》,有些问题是以前自己没有注意和没有接触过的,整理了以下3点: