您的位置:首页 > 编程语言 > C语言/C++

C/C++学习笔记(一)

2016-01-19 19:58 309 查看
一、C++层次代码的优化: 

1、无符号类型应用于:除法和余数,循环计算,数组下标; 带符号类型应用于:整型到浮点的转化。

2、while与for的比较:for比while编译后指令少,不占用编译器且无需跳转。

3、数组与指针:指针能访问任意位置,当不必要访问时用数组可优化代码,提高稳定性。

4、小循环完全展开。

5、避免没必要的读写依赖。(引入临时变量)

7、确定浮点型变量及表达式是float型,默认情况是double型,只有声明后才是float型。(如:3.14f)

8、switch的用法:推荐按case值发生的可能性进行排序,最有可能的放在第一个。另外在case中推荐使用小的连续整数。

9、所有函数都应该有原型定义。

10、尽可能使用常量(const)。可提高代码的效率。

11、把本地函数声明为静态(static)。如果一个函数在实现他的文件外未被使用的话,应将他声明为静态。

12、动态内存分配。

13、使用显示的并行代码,尽可能把长的有依赖的串行代码写成可以再流水线单元中并行执行的代码。如下:

       double a[100],sum;

       int i;

       sum=0.0f;

       for(i=0;i<100;i++){ sum+=a[i];}

  可写成:

      double a[100],sum1,sum2,sum3,sum4,sum;

      int i;

      sum1=sum2=sum3=sum4=0.0;

      for(i=0;i<100;i+=4)

      {

           sum1+=a[i];  sum2+=a[i+1];  sum3+=a[i+2];  sum4+=a[i+3];

       }

     sum=(sum1+sum2)+(sum3+sum4);  //流水线并行执行

14、提出公共子表达式。

15、结构体成员的布局。成员对齐,是指结构体成员要与存储器的单元对齐,如64位的系统,若原结构体总长度为17,会自动填充为24,浪费了空间,所以要是结构体成员合理排序。

16、避免不必要的整数除法。整数除法是整数运算中最慢的,所以应该尽可能避免。避免连除,以乘法代替。

17、把频繁使用的指针型参数拷贝到本地变量。指针难以优化。

18、赋值与初始化。尽量在需要使用一个对象时才声明,并用初始化方法赋初值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: