zoukankan      html  css  js  c++  java
  • C++代码优化[转摘]

    (1)inline函数

    (2)用指针代替数组

    (3)不定义不使用的返回值

    (4)使用寄存器变量

    (5)使用自增和自减操作符

    (6)减少函数调用参数

    (7)switch语句中根据发生频率来进行case排序

    (8)将大的switch语句转为嵌套switch语句(同样根据发生频率来进行)

    (9)如果switch中每一种情况下都有很多的工作要做,那么把整个switch语句用一个指向函数指针的表来替换会更加有效,比如下面的switch语句,有三种情况:
    enum MsgType{Msg1, Msg2, Msg3}
    switch (ReceiveMessage()
    {
    case Msg1;
    ......
    case Msg2;
    .....
    case Msg3;
    .....
    }

    为了提高执行速度,用下面这段代码来替换这个上面的switch语句。

    /*准备工作*/
    int handleMsg1(void);
    int handleMsg2(void);
    int handleMsg3(void);
    /*创建一个函数指针数组*/
    int (*MsgFunction [])()={handleMsg1, handleMsg2, handleMsg3};
    /*用下面这行更有效的代码来替换switch语句*/
    status=MsgFunction[ReceiveMessage()]();

    (10)避免使用C++的昂贵特性。

    单纯的加入类既不会影响代码的大小,也不会影响程序的效率。但C++的多重继承、虚拟基类、模板、 异常处理及运行类型识别等特性对代码的大小和效率有负面的影响,因此对于C++的一些特性要慎重使用,可做些实验看看它们对应用程序的影响。

  • 相关阅读:
    【Loj146】DFS序3-树链剖分
    【BZOJ3083】遥远的国度- 树剖-换根
    树链剖分-树剖换根
    c++ 随机生成树
    【HAOI2015】树上操作-树链剖分
    centos修改dns
    HttpClient
    aiax跨域问题
    伪静态
    springboot父子项目
  • 原文地址:https://www.cnblogs.com/afarmer/p/1732981.html
Copyright © 2011-2022 走看看