- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 C/C++中需要知道的事情
1. 相对于浮点数,整数之间的加、减、乘都要快得多;但对于除,浮点数反而比整数更快,因为整数之间的除会把整数转换好几次。2. 下面的代码中,b.foo()要比a.foo()更省时间。因为A::foo()中每次使用ma时都需要通过隐式的this指针来检索ma的地址。class A{ int ma;public:A(int a) : ma(a) {}void foo();}; void A::foo(){ for(int n = 0; n
2010-10-30 11:05:00 324
原创 最近的 Bug 总结(C++)
最近写程序犯的一些错误,写出来仅供参考:1. 在使用变量时,一定要保证你的取值不会超过它的取值范围。比如说要是你的变量声明为uint16_t bigUint = 0xffff;那么当你再增加它的值时它的取值会折回去,而且程序完全正常。比如 bigUint += 2;的结果是1.2. 在 中定义的 uint8_t 其实为 unsigned char,所以本质上uint8_t 型的变量是字符,而不是整数!这种差异对于算术运算可能没什么差别,但是在有些情况会导致一些不易察觉的错误。比如我们经
2010-10-17 23:39:00 398
原创 gdb 中使用 core 调试段错误
如果我们运行生成文件a.out(./a.out)时出现段错误,我们可以使用产生的 core 文件来快速定位错误产生的地方(哪个文件中的哪行?)。如果运行“./a.out”时没有产生名叫 core 的文件,可能是因为系统限制了产生的 core 文件大小。使用“ulimit -c”查看 core 文件大小的限制值,它有可能是0 。 我们可以使用命令 “ulimit -c 数字”来重新设置 core 文件的大小(单位可能是K),也可以使用命令“ulimit -c unlimited”来设置不限制
2010-10-11 14:23:00 531 1
原创 设计模式汇总
蝇量(Flyweight)模式: 当一个应用中需要某个类的很多实例,而这些实例能被同一方法控制时,我们可以使用蝇量模式。它将许多“虚拟”对象的状态集中管理,可以减少运行时对象实例的个数,节省内存。但缺点是,一旦你实现了它,单个的逻辑实例将无法拥有独立而不同的行为。适配器(Adapter)模式: 当程序中需要的接口与我们实现的类的接口不一致时,为了避免修改已有程序,我们可以把实现的类适配成程序需要的类,让原本接口不兼容的类可以合作无间。依据适配的不同方式,适配器可以分为对象适配器(利用组合)和
2010-10-05 12:04:00 354
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人