![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编码风格
文章平均质量分 84
^Moon^
这个作者很懒,什么都没留下…
展开
-
C++性能优化笔记-1-平台选择
一、硬件平台的选择随着硬件设计变化和性能的提升,硬件平台选择越来越不重要了。现在硬件平台的选择更多考虑的不是处理能力,而是价格、兼容性、可替代性、开发工具的可得性等。采用普通PC网络集群,往往比投资大型机更便宜和有效。超级计算机在科学计算领域仍然有优势。但是对于绝大多数普通任务,标准PC更具性价比。由于现在主流处理器已经是X64,CISC指令集寄存器太少的问题已经得到缓解。对于关键应用,不建议采用依赖网络资源的轻量客户端模式,原因是网络资源的响应时间无法控制。现在小型手持设备越来越多,其硬件资源比P原创 2021-08-23 17:20:40 · 495 阅读 · 0 评论 -
库开发技巧-2-改善代码以符合二进制兼容
文章目录添加新数据成员到没有d指针的类中添加重新实现的虚函数使用新的类在叶子类中添加一个新的虚函数使用signals替代虚函数添加新数据成员到没有d指针的类中如果已有的类没有bigflags,预保留的变量,也没有d指针,但是还需要添加新的私有成员变量。还是有补救的办法的。如果类继承自QObject,可以把附加的数据成员写入一个特定的子类中,并通过遍历子类列表(QObject::children())来查找附加的数据成员。不过,一个更好更快的方法是用哈希表来存储类对象和附加数据的映射关系。为了达到这个目的翻译 2021-08-12 19:48:21 · 103 阅读 · 0 评论 -
类库开发技巧-1
文章目录前言Bitflags使用d指针前言当开发类库时,最大的问题是不能安全地添加数据成员。因为这样做会改变包含被修改的类对象(包括子类)的所有类、结构体或数组的大小和布局。Bitflags一个例外情况是 bitflags。如果在定义enums或bool时使用bitflags,可以至少安全地增加成员到下个字节-1.例如:一个类有如下成员unsigned int m1 : 1;unsigned int m2 : 3;unsigned int m3 : 1;修改为unsigned int翻译 2021-08-11 16:17:03 · 165 阅读 · 0 评论 -
C++二进制兼容性总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、什么是二进制兼容?二、保持二进制兼容的条件1.可以做的事情2.不可以做的事情补充说明应该做的总结前言对于C-Like等编译型语言,没有虚拟机的协助,随着项目维护,必然会产生很多兼容性问题。此文作为个人对其中的二进制兼容性进行一下总结。一、什么是二进制兼容?对于一个库,如果使用旧版本的主程序,无需重新编译就可以连接新版本的库,并正常运行,则这个库是二进制兼容的。如果主程序不需要修改,但需要重新编译才可以使用新版翻译 2021-08-11 14:33:35 · 2226 阅读 · 0 评论 -
参数传递(引用,指针,值传递)C++11
C++中,函数的参数传递方式有值传递、地址传递。传地址有指针和引用方式。 在函数参数中,传地址的理由有: 1.使被调函数可以修改主调函数中的数据对象; 2.传地址可以减少数据拷贝,提高程序执行速度。那么,何时使用值传递,何时使用地址传递(指针和引用)? 下面是一些写代码时会遇到的一些情况被调函数使用参数对象时,不会修改数据对象如果要传入函数的数据对象较小,比如是内建数据类型或小规模的结构体原创 2015-03-13 15:45:38 · 850 阅读 · 1 评论 -
引用参数的重载
类和STL中经常使用引用参数。那么,引用参数的重载的机制是如何的? void funA(double &p_lv); //对应可在funA中修改的 左值 void funB(const double &p_lrv); //对应左值和右值 void funC(double &&p_rv); // 对应右值其中,funB的参数可以匹配funA和funC的参数。 v原创 2015-03-16 13:01:23 · 705 阅读 · 0 评论 -
编程箴言(Programing Adages)
1.通用1.1注释、注释、注释。在程序中加大量的注释。这不仅让别的程序员知道你做了什么,也提醒你自己。1.2遵守KISS准则(Keep It Simple, Stupid)。清晰、简介远比复杂和巧妙好得多。1.3避免副作用。使++和--单处一行。1.4使用前缀形式的++和--(++X, --X),而避免使用后缀形式(X++, X--)。这条准则对C编程没有什么意义,但是非常有助于转翻译 2012-10-16 16:23:17 · 565 阅读 · 0 评论