摘要:最近碰到一个与内联方法有关的编译问题,记叙如下。 问题背景类Scheduler的实现如下所示,其中方法SetStates()仅仅被类本身使用(暂且先不管它的public属性)。 如上代码构建正常。之后,新建一个新的类SchedulerMgmt,并且在其中使用了类Scheduler当中的SetSta... 阅读全文
C++中的常量定义
2015-08-24 19:59 by Peter87, 3340 阅读, 0 推荐, 收藏, 编辑
摘要:本篇笔记总结自一次代码检视。一般来说,使用C语言编程时我们都习惯在代码当中使用C当中的宏定义来定义一个数值常量:```#define MY_CONST 7```在C++开发项目时,也会经常存在沿袭C当中常量用法情况。所以,如下的一种写法看起来反倒觉得有些不正宗了:```class MyClass ... 阅读全文
单一出口原则
2015-08-09 10:59 by Peter87, 5276 阅读, 4 推荐, 收藏, 编辑
摘要:最近在读《重构——改善既有代码的设计》这本书,在 9.4 Remove Control Flag(移除控制标记)这一节,作者提到了“单一入口”和“单一出口”这两个原则,并对“单一出口”原则批驳了一番,让我想起了一个遥远的故事。那是3年前在H3C实习的日子,开发部门对代码规范规定略微严格,并且有代码鉴... 阅读全文
C++语言中的四种类型转换
2015-08-04 21:38 by Peter87, 412 阅读, 0 推荐, 收藏, 编辑
摘要:### 1 引子 这篇笔记是根据StackOverflow上面的一个[问题](http://stackoverflow.com/questions/28002/regular-cast-vs-static-cast-vs-dynamic-cast/1255015#1255015)整理而成,主要内容... 阅读全文
编程是一门实践技能,积极动手实验常有意外的收获
2015-07-23 21:16 by Peter87, 285 阅读, 0 推荐, 收藏, 编辑
摘要:这是自己这一周的一点小体会。说来惭愧,这周以来一直在琢磨工程当中某个函数的优化,任务描述当中是说此函数在执行过程当中出现了Pipeline Stall的情形,并且消耗的cycles数也位居前列。读它千百遍下来却没有一个好的思路入手。从整个函数的逻辑上去看,其中的的确确多次调用了其他的函数,并且做了不... 阅读全文
感受数据结构的魅力:记一次查找性能优化
2015-06-28 09:38 by Peter87, 271 阅读, 0 推荐, 收藏, 编辑
摘要:前几周做过一次性能优化,如果对应用场景所碰到的问题进行抽象,实际上就是一次三维数组的查找性能优化。在反复尝试了好几种方案之后,总算找到了一种当前为止最高效的方案。 问题背景一个函数需要对接收消息载荷当中的元素进行分组,之后将这些元素以组为单位进行发送。一个形象的比方:某快递公司为了提高货物快递效率,... 阅读全文
《Clean Code》一书回顾
2015-04-21 09:30 by Peter87, 1172 阅读, 0 推荐, 收藏, 编辑
摘要:《Clean Code》一书从翻开至今,已经差不多两个月的时间了,尽管刨去其中的假期,算下来实在是读得有点慢。阅读期间,断断续续的做了不少笔记。之前,每每在读完了一本技术书籍之后,其中的诸多细节会很快的淡忘,最终留下的往往是在阅读时候与自己之前的印象产生极大共鸣的部分,或者在之后实践当中碰巧运用到的... 阅读全文
小论“Boolean参数作为入参”的函数
2015-04-16 18:34 by Peter87, 3081 阅读, 0 推荐, 收藏, 编辑
摘要:《Clean Code》一书中对于如何写好函数有着很动人的描写,其中对于函数参数的建议有如下两点:>* 函数参数的数量应该尽可能少>* 给一个一元函数传入bool类型的参数很“罪恶”昨天在浏览[Hacker News](https://news.ycombinator.com/news)的时候恰好发... 阅读全文
C++中的对象初始化
2015-01-03 19:51 by Peter87, 11477 阅读, 1 推荐, 收藏, 编辑
摘要:总所周知,C++对象在创建之时,会由构造函数进行一系列的初始化工作。以没有继承关系的单个类来看,除了构造函数本身的产生与指定,还涉及到初始化步骤,以及成员初始化方式等一些细节,本篇笔记主要对这些细节进行介绍,弄清C++对象在初始化过程中一些基本运行规则。构造函数指定通常,我们在设计一个类的时候,会为... 阅读全文