C语言参考手册

C语言参考手册

ID:38169206

大小:131.51 KB

页数:5页

时间:2019-05-31

C语言参考手册_第1页
C语言参考手册_第2页
C语言参考手册_第3页
C语言参考手册_第4页
C语言参考手册_第5页
资源描述:

《C语言参考手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言参考手册之预处理器Ver:1.0Date:2005-7-29LW7807@163.com制作摘录自《C程序设计语言(第二版)》K&R著徐宝文等译版权属原作者和出版社所有版权说明:本资料内容摘录自《C程序设计语言(第二版)》K&R著徐宝文李志译尤晋元审校机械工业出版社出版一书。版权属原作者和出版社所有。制作本资料为了我本人学习和参考,非商业用途。建议读者阅读原书学习比较好,它更详细。目录:A.12预处理主要介绍预处理器的功能和预处理的过程。A.12.1三字符序列主要介绍??=,??(,??<等三字符序列。A.12.2行连接

2、主要介绍反斜杠结束的指令行处理过程。A.12.3宏定义和扩展主要介绍#define标识符记号序列,#define标识符(标识符表opt)记号序列,#undef标识符,还有#和##等一些东西,有一些例子。A.12.4文件包含主要介绍#include<文件名>和#include“文件名”指令。A.12.5条件编译介绍#if常量表达式/#ifdef标识符/#ifndef标识符,#elif常量表达式,#else,#endif语句。A.12.6行控制介绍#line指令。A.12.7错误信息生成介绍#error指令。A.12.8prag

3、ma介绍#pragma。A.12.9空指令介绍空指令#。A.12.10预定义名字介绍__LINE__,__FILE__,__DATE__,__TIME__,__STDC__等。-1/5-C语言参考手册之预处理器Ver:1.0Date:2005-7-29LW7807@163.com制作摘录自《C程序设计语言(第二版)》K&R著徐宝文等译版权属原作者和出版社所有A.12预处理返回目录预处理器执行宏替换,条件编译以及包含指定的文件。以#开头的命令行(“#”前可以有空格)就是预处理器处理的对象。这些命令行的语法独立于语言的其它部分,他

4、们可以出现在任何地方,其作用可以延续到所在编译单元的末尾(与作用域无关)。行边界是有实际意义的;每一行都将单独进行分析(有关如何将行连接起来的详细信息参考A.12.2节)。对预处理器而言,记号可以是任何语言记号,也可以是类似于#include指令(参见A.12.4节)中表示文件名的字符序列。此外,所有未进行其它定义的字符都将被认为是记号。但是,在预处理器指令行中,除空格,横向制表符外的其它空白字符的作用是没有定义的。预处理过程在逻辑上可以划分为几个连续的阶段(在某些特殊的实现中可以缩减)。1)首先,将A.12.1节所述的三字符

5、序列替换为等价字符。如果操作系统环境需要,还要在原文件的各行之间插入换行符。2)将指令行中位于换行符前的反斜杠符删掉,以把各指令行连接起来(参见A.12.2节)。3)程序分成用空白符分割的记号。注释将被替换为一个空白符。接着执行预处理指令,并且进行宏扩展(参见A.12.3节~A.12.10节)。4)将字符常量和字符串字面值中的转义字符序列替换为等价字符,然后把相邻的字符串字面值连接起来。5)收集必要的程序和数据,并将外部函数和对象的引用与其定义连接,翻译经过以上处理的结果,然后与其它程序和库连接起来。A.12.1三字符序列返

6、回目录C语言源程序的字符集是7位ASCII码的子集,但它是ISO646-1983不变代码集的超集。为了将程序通过这种缩减的字符集表示出来,下列所示的所有三字符序列都要用相应的单个字符替换,这种替换在进行所有其它处理之前进行。??=#??([??<{??/??)]??>}??’^??!

7、??-~除此之外不进行其它替换。说明:三字符序列是ANSI标准新引入的特征。A.12.2行连接通过将以反斜杠\结束的指令行末尾的反斜杠和其后的换行符删除掉,可以将若干指令行合并一行。这种处理要在分隔记号之前进行。A.12.3宏定义和扩展返回目录

8、类似于下列形式的控制指令:#define标识符记号序列将使得预处理器把该标识符后续出现的各个实例用给定的记号序列替换。记号序列前后的空白符将被丢弃掉。第二次用#define指令定义同一个标识符是错误的,除非第二次定义的标记序列与第一次相同(所有的空白分隔符将被认为是相同的)。类似于下列形式的指令行:#define标识符(标识符表opt)记号序列是一个带有形式参数(由标识符表指定)的宏定义,其中第一个标识符与圆括号(之间没有空格。同第一种形式一样,记号序列前后的空白符都将被丢掉。如果要对宏进行重新定义,则必须保证其形式参数个数、

9、拼写及记号序列都必须与前面的定义相同。类似于下列的控制指令:#undef标识符-2/5-C语言参考手册之预处理器Ver:1.0Date:2005-7-29LW7807@163.com制作摘录自《C程序设计语言(第二版)》K&R著徐宝文等译版权属原作者和出版社所有用于取消标识符

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。