摘要: 正:http://blog.codingnow.com/2008/03/hot_update.html反:http://blog.csdn.net/seawave/article/details/768320 阅读全文
posted @ 2012-11-08 09:35 cwt13579 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 云风的 BLOG思绪来得快去得也快,偶尔会在这里停留« 好游戏不问年代|返回首页|用 C 实现一个变长数组 »给 C 实现一个垃圾收集器粽子节假期,欧洲杯开战。为了晚上不打瞌睡,我决定写程序提神。这三天的成果就是:实现了一个 C 用的垃圾收集器。感觉不错。话说这 C 用的垃圾收集器,也不是没人做过,比如这个。不过它用的指针猜测的方法,总让人心里不塌实,也让人担心其收集的效率。我希望做一个更纯粹的 gc for C/C++ 模块,接口保持足够简单。效率足够的高。三天下来,基本完成,正在考虑要不要放到 sourceforge 上开源。等过两天彻底测试过再做打算(或许再支持一下多 阅读全文
posted @ 2012-11-08 09:33 cwt13579 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 用 C 实现一个变长数组我想用 C++ 的人都用过 std::vector 。它是一个可变长的数组,在很多时候都比 C 固有的定长数组要灵活。C 里没有这样的标准化设施,但是写软件的人通常都会实现一个。正所谓,不厌其烦的重造轮子 :D 。这里我们不讨论造轮子的好坏问题,直接讨论下实现这么个东西的一点小技巧吧。总是固执于用谁做的轮子的问题,眼光就太短浅了。一般的 vector 的实现,需要记录三个数据:数据空间的地址,空间大小,数组里已存在的元素个数。也可能是这三个元素的变体。比如在 msvc 的 stl 实现中,vector 保存的是三个 iterator:数组头指针、最后一个元素的指针、分配 阅读全文
posted @ 2012-11-08 09:32 cwt13579 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 引用计数与垃圾收集之比较本质上来说,引用计数策略和垃圾收集策略都属于资源的自动化管理。所谓自动化管理,就是在逻辑层不知道资源在什么时候被释放掉,而依赖底层库来维持资源的生命期。而手工管理,则是可以准确的知道资源的生命期,在准确的位置回收它。在 C++ 中,体现在析构函数中写明 delete 用到的资源,并由编译器自动生成的代码析构基类和成员变量。所以,为 C++ 写一个垃圾收集器,并不和手工管理资源冲突。自动化管理几乎在所有有点规模的 C++ 工程中都在使用,只不过用的是引用计数的策略而非垃圾收集而已。也就是说,我们使用 C++ 或 C 长期以来就是结合了手工管理和自动管理在构建系统了。无论用 阅读全文
posted @ 2012-11-08 09:29 cwt13579 阅读(235) 评论(0) 推荐(0) 编辑