糙级码lee
文章平均质量分 83
zerolxl
来自厦门的糙级码lee ---
展开
-
linux 代码覆盖率 检测
gcc/g++自带了gcov 工具可以自动生成一个执行代码覆盖率信息的文件gcda。只需要带编译宏 -fprofile-arcs-ftest-coverage 就可以生成gcno文件具体的信息可见 http://gcc.gnu.org/onlinedocs/gcc-3.3.6/gcc/Gcov-Intro.html#Gcov-Intro 天主要介绍利用gcov生成的文件原创 2012-11-19 21:17:33 · 3584 阅读 · 1 评论 -
推荐一款cpp解析json工具--rapidjson
项目地址:http://code.google.com/p/rapidjson/上面有很详细的介绍:http://code.google.com/p/rapidjson/wiki/UserGuide作者介绍说:" Rapidjsonis an attempt to create the fastest JSON parser and generator. "这是一个试图创造出一原创 2012-11-29 23:31:25 · 23028 阅读 · 8 评论 -
代码走查该走查什么
代码走查在很多公司都是一个必要的过程,但是很多时候却时候一个形同虚设的过程,通常检查的同事只要保证你的代码能够编译通过,不出现问题就pass了。到底代码走查有没有一定的规范性呢?如果公司是严格按照开发流程来的话,那么代码走查可能也会是下图中红色,它标示着代码走查可以使得设计人员和开发人员之间识别出错误,防止出现设计一套方案开发又开发自己又写出了另一套方案的问题发生。这在一些业务性比较强的系统中原创 2012-10-13 00:55:22 · 17052 阅读 · 0 评论 -
回调函数
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。原创 2012-09-20 00:15:10 · 759 阅读 · 0 评论 -
设计模式(1) –单例模式(Singleton)
首先,单例模式是对象的创建模式之一,单例模式的三个特点:1,该类只有一个实例2,该类自行创建该实例(在该类内部创建自身的实例对象)3,向整个系统公开这个实例接口 有人可能会问这样的方式可以用在哪里,哪里比较适合使用?举个例子,倚天剑只有一把,可能在张无忌手中 可能在杨逍手中当然也有可能在赵敏手中,如果我们将倚天剑设置为一个普通的类,那么就可能出现一个倚天剑重复实例化的原创 2012-09-27 22:41:56 · 928 阅读 · 0 评论 -
拷贝构造函数(浅拷贝 深拷贝)
名词解释: 位拷贝:位拷贝拷贝的是地址 值拷贝:拷贝的是内容使用位拷贝在一些不涉及指针变化的简单操作中可以满足我们的需求,因为他们只需要简单的将成员变量的值简单的复制,这种我们也称之为:浅拷贝。假设我们现在需要用在新开辟一个空间,那么就不能简单的用浅拷贝来得到我们需要的结果,这种需求我们称之为:深拷贝。这样我们就需要自己写拷贝构造函数来实现深拷贝了。原创 2012-10-08 23:14:40 · 2230 阅读 · 0 评论 -
一.宏定义(3) --查看宏展开
1. 怎么查看宏展开 从一个宏定义开始说起#define Mul( a,b) a * b 乍看之下这个宏定义并没有什么问题,但是当你采用如下用法的时候就会出现问题了int main(char * argv[] ,intargc){ intnmul=Mul(2+3, 4+5); printf("mul=[%d]原创 2012-09-20 21:11:36 · 9549 阅读 · 0 评论 -
设计模式(5) 结构型模式总览
1 桥接模式(Bridge)模式核心思想: 将接口抽象化(接口类)然后通过继承将客户端(操作类)隔离开来达到解耦的作用。应用场景: A sir 和Bsir 两个人分别负责一个系统的两个模块,A需要调用B的实现操作,后期测试发现B sir的模块效率太低,于是B 需要优化改写自己的代码,如果这是A 和B没有事先定义好接口方式,那么很有可能B进行优化代码后A 也需要做相应的修改。这个时原创 2012-10-11 23:18:09 · 1278 阅读 · 0 评论 -
设计模式(3) –建造者模式(Builder)
建造者模式,也属于创建型模式。 建造者顾名思义就是一个产品(建筑)实现的经手人,他们经过一系列统一的操作去完成一个作品,完成一个什么样的产品和他的建造者密不可分。打个比方现在老李家现在有一块地可以用于建筑用地,可以用来盖个超市也可以用来建造一个别墅,老李的两个儿子都是建筑师,于是他叫来了两个儿子让他们各自设计一套从打地基到装修的完整的房子建造方案让他看看想采用谁的。原创 2012-10-02 22:27:36 · 884 阅读 · 0 评论 -
设计模式(2) –工厂模式(Factory)
个人而言我认为工厂模式是应用最为广泛的一种模式了,工厂模式也属于创建型模式,一般来说分为:简单工厂模式、抽象工厂(AbstactFactory)模式。这个模式有什么好处呢?我们可以通过下面这个例子来探讨: 假设工厂生产一些了很多种产品,并且需要为这些产品设计很多的包装,每个产品用来展示用各自的包装设计展示给客户看。于是几年前的我可能就会写出如下的代码: class原创 2012-10-01 22:13:57 · 1037 阅读 · 0 评论 -
设计模式(4) –原型模式(Prototype)
原型模式属于我们要介绍的创建型模式的最后一种。火影中,鸣人的绝招之一就是影分身之术,复制出大量的自己,在某个程度上我们也可以看做是原型模式,因为影子分身也是单独存在的,只是比较脆弱一点。。原型模式相对比较容易理解,即为已经存在的类新增一个克隆的接口,所谓的克隆就是产生一个与自身无关、单独存在的个体。在c++ 中我们通常用拷贝构造函数来实现这个原型模式,因此我们有必要先理解何为拷贝构造函数以及浅拷贝原创 2012-10-07 22:56:07 · 940 阅读 · 0 评论 -
一.宏定义(2) --# 、#@ 和## 操作等
2 # 、#@ 和## 操作# :将宏参数字串化(只在有参数的时候用到)如: #define PRINTF_OP(x) printf(#x"is %d\n", (x) );Code: int i=10; int j=2; PRINTF_OP(20); PRINTF_OP(i/j);原创 2012-09-18 22:37:39 · 750 阅读 · 0 评论 -
一.宏定义(1)
1. 关于宏 宏在c/c++ 中是个很常用的玩意儿,C语言中如何使用宏C(和C++)中的宏属于编译器预处理的范畴,属于编译期概念(而非运行期概念) 函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内存, 宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值)举个例子来说现在我们有需求需要经常用到一年的原创 2012-09-16 14:42:39 · 747 阅读 · 0 评论 -
推荐一款高效Cpp解析xml工具--RapidXml
解析效率比Xerces DOM 快50-100倍,tinyxml快30-60 ,作者自己牛逼哄哄的说这是他所知道的最快的xml解析库了~~作者介绍说:" The table below compares speed of RapidXml to some other parsers, and to strlen() function executed on the same data. On原创 2012-12-01 14:35:57 · 4365 阅读 · 2 评论