- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载
第3章 阅读“C ”程序
学习阅读用“C ”语言编写的程序是必须的,否则就无法阅读 U N I X 的源代码。
与自然语言相类似,读比写要容易一些。即使如此,你仍然需要非常细心地学习那些巧
妙之处。
与“C ”语言直接相关的“U N I X文献”有两种,它们是:
《C参考手册》,作者是丹尼斯·里奇
《C语言程序设计导引》,作者是布里安·柯林汉
从现在开始,你就应当阅读这些文献,并且要尽可能一次又一次地反复阅读它们,这样
才会愈来愈深入地了解 C语言。
学习U N I X源代码并不要求你能够编写“ C ”程序。但是,如果有机会,那么你应当至少
编写一些小的C语言程序。这是一种学习程序设计语言的良好方法,使用这种方法你会较快地
理解如何正确使用下列的“ C ”语言组成部分:
分号;
“=”和“==”;
“{”和“}”;
“++”和“--”;
说明;
寄存器变量;
“i f ”和“f o r ”语句;
等等
你将发现“C ”是一种在存取和处理数据结构和字符串方面非常方便的语言,而这种操作
占了操作系统相当大的部分。作为一种面向终端的要求简明而紧凑表达式的语言,“C ”使用
一种大字符集,并且使很多符号,例如“ * ”、“ ”等得到很频繁的使用。在这方面“ C ”语
言可与A P L相比。
“C ”语言的很多特征令人想到 P L / 1 ,但“C ”在结构化程序设计方面提供的设施比 P L / 1
要强得多。
3.1 某些选出的例子
下面的例子都直接选自U N I X源代码。
3.2 例1
最简单的过程并不做任何实际工作,在源代码中这种过程出现了两次,它们是“ n u l l s y s ”
第3章 阅读“C”程序 223
下载
( 2 8 6 4 )和“n u l l d e v ”( 6 5 7 7 ) 。
其中并没有任何参数,但是一对园括号“ ( ”和“)仍旧是需要的。一对花括号“{”和“}”界
定了过程体,在本例中过程体为空。
3.3 例2
下面一个例子内容稍多一些:
其中增加了一条赋值语句。该语句用一分号终止,它是语句的组成部分,而非 A l g o l类语言中
的语句分隔符。
“E N O D E V ”是一个定义的符号,在实际编译之前由编译程序的预处理器将这种符号代换
成一个与其相结合的字符串。 E N O D E V在0 4 8 4行被定义为 1 9。U N I X与此相关的惯例是:定
义符号由大写字符组成,而其他符号则使用小写字符。
“=”是赋值算符,“u . u_ e r r o r ”是结构“u ”的一个元素(参见0 4 1 9行) 。注意,“. ”算符
用于从一个结构中选出一个元素。该元素名是“ u_ e r r o r ”。在U N I X 中,结构元素命名通常都
用这种方式 —开头是一个区分符,然后是一个下划符,最后是一个名字。
3.4 例3
此过程的功能非常简单:它将指定的字数从一组连续单元复制到另一组连续单元。
此过程有3个参数。第2行
int *from,*to;
说明前两个变量是指向整型的指针。因为对第三个参数没有进行说明,按系统默认这是整型。
三个局部变量a 、b和c被指定为寄存器型。寄存器易于存取,引用它们的目标码也比较短。
a和b是指向整型的指针,而c是一个整型。寄存器型说明也可写成为:
register int *a,*b,c;
224 下篇 莱昂氏UNIX源代码分析
下载
这强调了寄存器型与整型的关连。
对以“d o ”开始的3行语句应当仔细观察。如果“ b ”是指向整型的指针,那么:
* b
表示被指向的整型数。于是,为了将“ a ”所指向的值复制到b所指向的单元,我们可使用下
面的语句:
* b = * a ;
如果我们将此写成:
您可能关注的文档
- 《卡耐基成功全集之二经营管理方略2》青少年教育文学精选.pdf
- 《卡耐基成功全集之四形象设计艺术(一)(二)》青少年教育文学精选.pdf
- 《康复医学》康复医学-教材-中等专业教育.pdf
- 《科学的今天和明天(五)》青少年教育文学精选.pdf
- 《科学小发明(一)》自然科学普及读物.pdf
- 《科学与文化(一)》浑沌文旅.pdf
- 《可持续发展理论探索:生态承载力理论、方法与应用》生态系统-区域环境-可持续发展-研究.pdf
- 《客观知识》进化学说-研究.pdf
- 《客户关系管理》企业管理-教材-供销管理.pdf
- 《课程实验论》课程-教学研究.pdf
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)