名不副实 的书_C语言接口与实现书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > > C语言接口与实现 > 名不副实 的书
archer C语言接口与实现 的书评 发表时间:2008-07-18 15:07:33

名不副实 的书

看到很多媒体上都评论这本书怎么好,怎么好,我读过这本书,却没有感觉到任何令我惊喜的东西,很是失望。

当时我正在思考如何将C运用到实际项目中,而且自己也总结了一些方法,怎么模块化设计,如何借鉴面向对象的思想进行管理,如何接口与实现分开,如何处理错误等等,而且这本书中也确实提到了这些方面,一开始也确实令我很惊奇,心想,终于有可以切磋的对象了。

可是,我立马就很失望了。看到他其中封装的stack,list等数据结构,感觉还不如我的更优雅;费力气实现C的异常机制,却证明在实际项目中无法应用,很多东西不是不优雅,就是不适合实际应用,令我大为失望。

然而,在论坛上看到一篇分析linux c中某/linux文件夹中的库时,他的实现方式之优雅,之可扩展性,之广泛应用性,之简洁性令我大为惊喜,甘拜下风。因此如果真想了解如何将C语言应用到实际项目中,不如去读源代码,因为那是在实际的项目应用中逐渐磨练出来的。

展开全文
有用 1 无用 6

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“名不副实 的书”的回应

windclarion 2010-03-28 14:49:03

没有那么差,不过的确有些不是那么实用

kitty 2010-02-15 01:00:09

这本书可以的!要仔细体会才行!Hmm....

北冥之鱼 2009-11-20 17:51:35

to 玩世不恭,据此书作者说书中的代码也是来自他们的实际项目--lcc编译器,我想也算是久经考验了吧,怎么会不实用呢?

哗呀哩呜 2009-05-09 10:05:41

话说,我比度寒更希望永远用不到线程...

度寒 2009-05-09 02:20:56

话说,我比jockey的希望多一点,我多么希望我的代码在访问错误的地址时就崩溃阿。想一想,你有一个线程写了一些越界的数据,结果另一个线程在两个小时后某名奇妙的崩溃了...

哗呀哩呜 2009-04-20 22:43:21

话说,代码中存在像访问非法地址这样的代码,程序运行崩溃无疑是最棒的症状(比起程序跑得莫名其妙)。我多么希望我写的代码有任何bug,程序就崩溃啊... XD

[已注销] 2009-04-13 20:23:47

ptwcj 说的是STL里的Vector越界判断吗,那个应该只是把条件判断封装进函数里了而已啊.

archer 2009-04-13 19:44:10

恩,之前以为errno很原始,但兜了一圈后才发现最原始的才是最清晰的,呵呵
个人意见

[已注销] 2009-04-13 15:21:56

也就是说,上面的那段程序,是fork()的鲁棒性强,而不是程序自己实现了异常处理。

[已注销] 2009-04-13 15:19:17

用指针的话C++肯定也是直接崩溃,但是如果采用标准STL,很多错误,包括越界是会直接抛出异常的,比如at()

你上面给出的错误处理还是基于系统接口的,在语言层面上没有体现。

骗子 猪 2009-04-13 12:24:48

我也这么想。

[已注销] 2009-04-13 12:14:16

不能吧

骗子 猪 2009-04-13 11:42:20

  以系统程序为例,访问非法地址程序崩溃,其他并不怎么严重的情况可以自己处理。比如,最常见、最典型的一段代码:
        
pid = fork();
        
if (pid > 0) {

} else if (pid == 0) {

} else if (pid < 0) {

//fork出错,自己进行错误处理。

}
        
另外,访问非法地址崩溃应该是操作系统的要求。难道C++的异常机制还能保证访问非法地址不崩溃吗?

[已注销] 2009-04-12 14:29:02

我的意思是C语言里你光靠错误信息能够不退出程序做出反应么?比如一个访问非法地址,程序应该会直接崩溃掉吧。

骗子 猪 2009-04-10 23:09:56

异常机制的提出,是为了解决错误处理中出现一些问题;异常是改进的错误处理。楼上的估计不知道吧。

但是,我不知道C的错误处理到底有什么缺点,可能有些人要求高,不好听的说就是吹毛求疵。

[已注销] 2009-04-10 22:11:11

to ls的ls

异常处理和错误信息能一样么。。。。。。

骗子 猪 2009-03-04 19:41:11

setjmp,longjmp基本上没用,C语言中用错误处理就很好了,非得搞面向对象的那一套异常机制,无异于脱裤子放屁,多此一举。
  
Unix操作系统核心代码可以做教科书了吧?系统调用,库函数的实现也可以做教科书了吧?  

它们压根就不用什么异常。仅仅简单的提供了一个全局变量errno和一个库函数strerror用于把错误号转化成错误信息。

M 2008-10-13 09:23:47

linux的链表实现确实不错,可是却用到了gcc的编译器特性,我没有用过其他的编译器,不知道别的编译器是否有类似的特性。但是作者在写书的时候却要考虑这些问题,因此作者的代码必然是通用的、编译器无关的。作者的代码看似没有linux的链表实现“聪明”,恐怕是因为考虑了更多的东西。
况且linux的链表实现是hacking的方式,只能说是很聪明,未见得多优雅。

archer 2008-08-14 19:57:56

用setjmp,longjmp来实现异常处理机制,这个确实能令人开眼界,我也老老实实地实现了,但是最后发现它在实践中一点用处也没有。

compactset 2008-08-13 11:30:47

Stevens推荐的书还会错, 只能说你太功利了, 只想copy&paste, 这本书是讲如何设计库的, 例如如何用标准C的setjmp、longjmp来实现类似WIn32 SEH的异常处理机制;内存管理实现细节;常用容器、字符串操作;线程库的实现细节;很少有书讲这些东西。这是本授人以渔的书。

archer 2008-07-21 23:28:46

终于找到了:
http://www.javaeye.com/topic/150581

Nicolas 2008-07-21 08:18:21

你最后提到的文章的地址是否提供一下, 不然,只是一个传说.让我怎么相信你的话呢.:)