- 博客(8)
- 收藏
- 关注
原创 使用 Duff 设施实现协程
<br />知道Duff设施的时候,只把它作为一个没多少实用价值的小技巧。然而,前段时间查询协程的时候,发现了在C语言中使用Duff设施实现协程的技巧!(详见http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html)<br /> <br />于是再次被 C 语言shock到<br /> <br />其一,虽然看到过 “宏定义可以改变C语言的语法” 这样的说法,但之前觉得不过是文本替换而已,在这里却确确实实地看到了如何用宏向C中增加了原
2010-06-07 23:16:00
1420
原创 可以管窥switch/case的Duff设施
C是这样一种语言, 在你知道它足够强大,足够古怪,觉得不会再有什么能让你感到吃惊的语法时,又会发掘出新的令人震惊的东西。今天看到的所谓Duff设施便是这样一种东西。我们知道,编译器有时为了效率,会将循环展开。偶尔,或许也存在需要手工展开循环进行优化的代码。展开循环时,循环体的内容被复制了k份,而原本需要迭代N次的循环则只迭代N/k次,余数部分则需要再循环一次。例如: in
2010-03-11 22:15:00
1170
原创 Singleton迷思(修)
Singleton可能是Gof设计模式中最简单同时也应用最广的模式了,各种实现也非常之多。原本对此也没什么想法,然而,直到看到了Ogre中Singleton的实现,才忽然茅塞顿开,明白了Singleton究竟是怎么回事:template class Singleton{protected:static T* ms_Singleton;public:Singleton(
2009-12-04 22:02:00
931
原创 甘草的《面向对象理论》阅读笔记
今天读了 甘草的《面向对象理论》,内容还是比较基础的,不过有两点比较关注 一是类与类之间的关系,除了 has-a(聚合), is-a(继承), can-do(实现) 之外,在第八篇提到了 implement-with 关系以前没有考虑过C++ public, protected, private 继承之间不同。文中明确指出了 C++ 中只有 public 继承是 is-a 关系
2009-11-22 15:41:00
869
1
原创 谈谈循环不变量
前两天看到一篇介绍二分原理的帖子,想起了以前写二分法的事情。二分法看似简单,但实际写的时候却发现 +1 -1 的地方很容易弄错。幸好之前看过循环不变量的介绍。 所谓循环不变量,是指在循环过程中保持不变的量。具体取什么样的量呢?显然,pi之类的常量在任何循环中都保持不变,但对分析循环并没有用处。 因此,为便于分析,循环不变量一般会取一个关于循环中的变量 V 的布尔函数 F,在整个
2009-10-20 21:13:00
13721
4
原创 面向对象,而不是类
最近经常在思考对象、类、接口、AOP之类的问题想想各种“面向对象”编程语言,类和对象的关系却是截然不同的在C++里,类只是对程序员和编译器有用的东西,到了运行时,基本只剩下了一个虚函数表,除非显式使用typeid和dynamic_cast,类型检查也都是编译时进行的而在Java/C#里,类在运行时依然存在,运行时也可以方便的进行类型匹配,还可以通过反射机制,访问那些在编译时无法确定的类的成员还有便
2009-10-11 10:28:00
915
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人