- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、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 ; 
如果我们将此写成: 
 
                您可能关注的文档
最近下载
- 九年级语文上册期中测试卷.docx VIP
- 如何提高培智学校课堂教学的有效性-最新资料.pptx VIP
- 人教版小学六年级下册数学精品教学课件 第二单元 百分数(二) 2.2 成数.ppt VIP
- 1访谈记录不忘初心方得始终.pdf VIP
- 八年级期中考试质量分析报告.doc VIP
- 2023年郑州中牟事业单位笔试参考答案 - 副本.pdf VIP
- 机器人滚压包边DPCA F12 001-2008.doc VIP
- (完整版)水电、风电效益测算分析表.xls VIP
- 甘教版初中八年级信息技术第四章《多媒体作品的规划与设计》说课课件.ppt VIP
- 人教版小学六年级下册数学精品教学课件 第二单元 百分数(二) 2.1 折扣.ppt VIP
 原创力文档
原创力文档 
                         
                                    

文档评论(0)