zoukankan      html  css  js  c++  java
  • c++实现中的一些注意 事项

    1,尽可能延后对象中的变量定义式的出现,这样可以增加程序的清晰度,尽量少的调用构造,如果有定义变量最好在末尾定义并给予初值,这样就避免了默认构造函数的调用。

    2 尽量少做转型操作。

      const_cast 将对象的常量性转除。

     dynamic_cast安全向下转型,用来确定某对象是否是否属于某继承体系中的某个类型。(消耗重大运行成本)

     reinterpret_cast执行低级转型,不可移植,

    static_cast强迫隐式转换,例如将非常量类型转换成const类型,或者将int转double。将void*转换成某类型指针。基类指针转换成派生类指针。但是无法将常量类型const 转换成非常量类型non-const。

    3 避免返回句柄(引用,指针,迭代器。。。 )指向对象内部成分。

    4 内联函数的使用。不要过度,会增加代码体积,降低指令高速缓存装置的击中率。损失效率。inlining在大多数的c++里都是在编译期间的行为。应该将大多数的inline限制在小型,被频繁调用的函数身上,可以使潜在的代码膨胀问题最小化,提升程序的执行速度。

    函数模板不要声明成内联。

    “所谓“内 联”,即将被调用函数的函数体代码直接地整个插入到该函数被调用处,而不是通过call语句进行。当然,编译器在真正进行“内联”时,因为考虑到被内联函 数的传入参数、自己的局部变量,以及返回值的因素,不仅仅只是进行简单的代码拷贝,还需要做很多细致的工作,但大致思路如此。--http://blog.csdn.net/andrew_yau/article/details/7687356”--内联的展开的意思,因此适合小的,频发的函数。普通函数调用的时候是要移交控制权给被调用函数的。宏的话相当于替换,但是可能存在歧义性。

    5 尽量将文件之间的编译依存关系降至最低。相依于声明式,不相依于定义式。

  • 相关阅读:
    解决eclipse maven 项目重新下载包这个问题
    Python猴子补丁
    浅谈服务治理与微服务
    微服务
    Tornado部署与运行
    tornado部署
    【测试】Gunicorn , uWSGI同步异步测试以及应用场景总结
    以gevent(协程) 方式跑uwsgi服务
    uwsgi配置理解
    python Web开发你要理解的WSGI & uwsgi详解
  • 原文地址:https://www.cnblogs.com/8335IT/p/6759265.html
Copyright © 2011-2022 走看看