免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4218 | 回复: 8
打印 上一主题 下一主题

[C] 《狂人C》阅读笔记(1) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-16 22:39 |只看该作者 |倒序浏览
http://sunxiunan.com/?p=1772

Page8,main的原型应该是不需要void作参数的。我试验了codeblock(使用gcc为编译器),没有警告。

另外就是代码应该标记出行号,使用行号指明更清晰一些。

还有一个格式方面的问题是”;“在书中单独出现时都是全角中文”;“这个非常糟糕,很容易误解。

还有一个问题是C99还是C89,我的建议是以C89为主介绍,间杂一些C99,但是C89不应该以”过时“来形容,我倒是觉得C89更主流一些。

page9,关于#include”"和#include<>的区别,应该指出后面会讨论的章节更好。

page14,关于中文做标识符、变量名、函数名的解释,反而让人比较迷糊。其实我觉得作为一本针对初学者的书籍,最好不要在开始碰这个方面,可以在后面加入一些说明补充。

page16,如表1-1所示,应该说”有些keyword”是C99新增关键字。另外我觉得这个C99其实意义不大,说了反而让人迷惑。在后面附录补充说明一下就可以了。

page19,风格习惯一节,如果说的更详细一点就好了,太简单。另外《狂人C》的代码风格是({}三种风格中)最不常见的一种,应该稍微提一下三种不同风格。

page20,开始一个段落介绍如何让printf分成print\换行加f这种,完全没必要,让人更混乱,而且代码示例如果从缩进来看还是错的。

page20,我觉得应该是”任何一个C程序必须有而且只能有一个入口函数,这个函数绝大多数情况下定义为main。“VC++和GCC都可以通过编译选项修改入口函数(entry function),如果用VC++,通常名字为_tmain()。还有就是main函数有两个可不可以?如果抬杠的讲,通过预定义编译选项,可以定义两个main,嘿嘿。

page20,printf()函数是由C标准库提供(C standard library),而C标准库大多数由操作系统编写者提供,通常情况下GCC只负责把printf()与标准库代码实现编译链接到一起。关于标准库,也可以选择比如DietC这种第三方。windows sdk也提供了标准库的实现,我不是很清楚,但是理论上说GCC应该是可以使用windows SDK提供的include和library的。

page25,应该介绍一下D(ecimal),H(ex)这些单词的完整形式,更好一些。

page29,对于学习、考试、面试而言,我觉得”同名”是一个很值得考的知识点,当然实际工作中就不要这么写了。

page31,由于字体的原因,/* */和//看上去非常奇怪,尤其是//就好像中间有个空格一样。

page31,关于注释,我不太同意书中说法。个人觉得注释只应该在该使用的时候使用,如何注释何时注释,代码大全和程序设计实践这两本书介绍的非常全。

page32,关于变量的定义,K&R英文版(以下提到K&R都指的是英文版页码)的page195说的非常清楚,《狂人C》的提法只说了其中一方面,也就是storage object这一面。不完整。

page32,变量使用之前必须声明(declaration),这一点《狂人C》的说法是错误的,对于C语言来讲,声明 (declaration)与定义(definition)是很有区别的两回事,不可以互换使用。K&R page40说的非常清楚。而定义(definition)在K&R的page250有说明。

论坛徽章:
0
2 [报告]
发表于 2010-12-16 23:36 |只看该作者
作者在此鞠躬致谢!

(转一下,您不介意吧)
http://bbs.chinaunix.net/thread-1830222-16-1.html

论坛徽章:
0
3 [报告]
发表于 2010-12-16 23:39 |只看该作者
回复 1# sagasw


    请容我仔细思考一下再详复

论坛徽章:
0
4 [报告]
发表于 2010-12-17 01:35 |只看该作者
我就不明白,为什么需要那么多C语言的书呢?K&R还没有讲清楚吗?

论坛徽章:
0
5 [报告]
发表于 2010-12-17 08:06 |只看该作者
K&R明显不是给计算机编程初学者用的书,当年他们写这书的时候,只要是搞程序的,整体素质明显要比计算机普及的现在高多了.

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
6 [报告]
发表于 2010-12-17 08:44 |只看该作者
LS说的是,不过我也没看过K&R

论坛徽章:
0
7 [报告]
发表于 2010-12-19 10:24 |只看该作者
回复 1# sagasw


   
page19,风格习惯一节,如果说的更详细一点就好了,太简单。另外《狂人C》的代码风格是({}三种风格中)最不常见的一种,应该稍微提一下三种不同风格。

这个确实如您所说
另外的风格也应该提一下
当时考虑的是这种风格可能更容易为初学者接受。只考虑了这一点,考虑的不够周全

论坛徽章:
0
8 [报告]
发表于 2010-12-19 20:38 |只看该作者
看不懂

论坛徽章:
0
9 [报告]
发表于 2010-12-20 00:10 |只看该作者
04年的正身路过弯腰捡米。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP