首页 > 学技术 > 技术网文 > C/C++ > 正文

[原创] 我写的young程序库,现已开源,希望大家多帮忙


来源 chinaunix.net kuqin整理

有3个子库,一个是我几年前自己写的STL,另外两个是我把STL容器类“移植”到C下面的一个C库和一个在C库基础上以C++ template构建的模板库。主要是想在嵌入式平台上运用,现在可以在X86、DSP、ARM上编译运行。希望得到大家的帮助!

下载地址:http://gforge.osdn.net.cn/projects/ylib/
BLOG地址:http://blog.csdn.net/youngphoneix/archive/2006/10/19/1341609.aspx



 converse 回复于:2006-10-28 10:18:08

支持!最近我也把STL的代码看了一下,C下面类似这样的库几乎没有,支持LZ的东东~~


 converse 回复于:2006-10-28 10:26:27

楼主大概说说C的实现用到了什么比较特殊的技术对数据结构进行封装吧,我比较感兴趣~~


 emacsnw 回复于:2006-10-28 15:50:05

楼主弓虽啊。下载学习一下。


 savageranthony 回复于:2006-10-28 23:56:20

不太喜欢用 STL,不过还是支持一下


 kenmark 回复于:2006-10-29 19:28:57

强的东西,又是C范性


 phoneix 回复于:2006-10-30 23:31:24

其实了解了编译原理和计算机系统是不难明白为什么C能够实现C++所谓的泛型的?当然,类似模板元编程的编译期技术是没有办法实现的。
converse (创系) 问道使用了什么技术,主要还是函数指针,这真是C语言里最伟大的特性之一了!
我想写一个系列的文章把我是如何实现的写下来,只看代码还是一件比较累人的事情!
希望能得到大家的鼓励!


 MackedNice 回复于:2006-10-31 09:45:41

好的。。。。
lz加油啊。。。。
期待你的大作。。。。。。


 magicgarden 回复于:2006-10-31 10:51:36

又一个重复劳动的猪头.


 converse 回复于:2006-10-31 11:33:51

引用:原帖由 magicgarden 于 2006-10-31 10:51 发表
又一个重复劳动的猪头. 



请你注意自己的言辞,谢谢


 wroxman 回复于:2006-10-31 11:50:34

我会帮忙测试。。。


 rock_jq 回复于:2006-10-31 15:02:01

引用:原帖由 phoneix 于 2006-10-30 23:31 发表
其实了解了编译原理和计算机系统是不难明白为什么C能够实现C++所谓的泛型的?当然,类似模板元编程的编译期技术是没有办法实现的。
converse (创系) 问道使用了什么技术,主要还是函数指针,这真是C语言里最伟大 ... 



期待!


 pmt1982 回复于:2006-10-31 15:36:48

高手,学习一下,一直都没怎么弄过STL


 linternt 回复于:2006-10-31 16:46:05

没用过,精神支持


 benlan 回复于:2006-10-31 21:52:42

顶你个肺


 converse 回复于:2006-11-01 11:54:58

借着这个帖子,提出一个问题:是不是所有C++的特性都可以通过C来模拟的,如果可以又是如何实现的呢?比如虚拟函数,模版,泛型之类的.

虚拟函数我先回答吧,可以通过函数指针的形式.

还没有仔细看过LZ的代码,不知道LZ在代码里面做到这些没有.如果没有的话,我觉得要做到STL那样容器和算法分离是比较困难的,至少我没有想到办法.


 connet 回复于:2006-11-01 13:49:14

为什么 0.8 比 0.11还新?


 phoneix 回复于:2006-11-01 16:25:10

楼上的0.8当然比0.11新啊!0.11不是1.1,你可能没有仔细看吧?
C是可以实现容器和算法分离的,但是算法的实现比较复杂,例如必须把迭代器的迭代函数传递给算法,在最初的版本中我实现了不少这样的算法,后来觉得挺可笑,过分强调通用而忽视了效率,所以后来把它们全都删掉了,现在的版本主要提供的是容器,实现的时候,容器和迭代器是分离的,事实上也很容易实现容器和迭代器的分离。


 connet 回复于:2006-11-01 17:23:49

0.8 比0.11 还新, 你还很有理啊,哈哈
这么说 linux 2.6.9 比 2.6.18  新啊?

开源了, 没说明开源协议。


 mjdcl 回复于:2006-11-01 17:33:32

不要偏题了
期待楼主写出创作过程思路,这个对大家启发更大


 albcamus 回复于:2006-11-01 17:37:08

楼主在什么地方工作,是不是我同事呀? :D


 phoneix 回复于:2006-11-01 23:09:03

应该不会,我在武汉


 phoneix 回复于:2006-11-01 23:17:25

引用:原帖由 connet 于 2006-11-1 17:23 发表
0.8 比0.11 还新, 你还很有理啊,哈哈
这么说 linux 2.6.9 比 2.6.18  新啊?

开源了, 没说明开源协议。 




抱歉,少敲了一个点,应该是0.1.1和0.1.2,我把这两个中间版本删了,免得引起误会。
每个文件的开头有一个简短的授权声明。




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=848385
转载请注明作者名及原文出处



收藏本页到: