define预处理指令的文本串结束于前面没有反斜杠-Read.PPTVIP

define预处理指令的文本串结束于前面没有反斜杠-Read.PPT

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
define预处理指令的文本串结束于前面没有反斜杠-Read

一、编译预处理指令概述 二、预处理指令 #include 三、#define指令 一、编译预处理指令概述 预处理过程是关于程序源代码的起始处理,它并不在语 法上分析处理源代码,但为源代码的处理作必要的准备。 预处理过程完成源程序的转换:插入源文件所必须的辅 助性说明如函数原型信息,过滤五花八门的注释成空白,免 费省时地执行数据的文本替换,宏代码的原地展开,确定程 序段的去留等。 此后才进入编译阶段对源代码进行语法分析。 预处理过程是关于程序源代码的起始处理,它并不在语 法上分析处理源代码,但为源代码的处理作必要的准备. 编译预处理指令是由井字符“#”开始的字符序列,以区 别程序中引入的其它名称或语句,井字符“#”之前不能存在非 空白字符。预处理指令如下: #include #define #undef #error #pragma #line #if #endif #else #elif #ifdef #ifindef 编译程序首先作的事情就是进行编译预处理。 在该阶段编译器读入头文件、根据条件编译指令确定处 理合适的源程序段并进行必要的文本替换。 预处理阶段的优越性在于可以在程序运行之前执行一些 特定的运算,这些运算与程序的运行时间没有关系。 预处理指令以行的换行符自然结束,不需要使用分号 ;。 相邻字符串合并为单一字符串,例如: ab cde合并为abcde 续行符\?即反斜杠\之后紧跟换行符(硬回车)结束的行 与下一行合并为单独的一行,这要求反斜杠\与换行符之间 没有空格即反斜杠\之后紧跟换行符(硬回车?),标记为\?, 不能写为\ ?。 硬回车?实际上是不可见的。可以用续行符\?来处理一 行容纳不下的宏替换指令。 例如: #define LONGTEXT abc*d[ i ] \? +b[ i ]/c[ j ]- d[ k ] 合并为内在的逻辑行: #define LONGTEXT abc*d[i]+b[i]/c[j]-d[k] 预处理指令可以分布在源程序的任何位置,但应与程序 源代码控制流程分隔开来。非空的源程序结束于前面没有反 斜杠的换行符。 二、预处理指令 #include 预处理指令 #include存在两种相似但含义不同的格式: 1. 尖括号形式(用于定位系统库的头文件) #include filename.ext #include 嵌入文件.h 2. 双引号形式(用于首先搜寻用户的头文件) #include filename.ext #include 嵌入文件.h’’ 嵌入文件名的扩展名不是必须的,预处理指令 #include共同之点是将其后所表明的嵌入文件中的内容原封 不动地加载插入到指令#include所在的位置,而代替指令本 身。 双引号形式首先在#include指令的包含文件所在的目录 路径查找要插入的文件。 如果没有找到则执行预定的搜寻过程。该形式通常用于 将程序员自身定义的头文件包含到实现文件中。 尖括号形式指出要插入的文件位于系统登录的路径中即 直接执行预定的搜寻过程,这种形式中的嵌入文件通常是标 准库头文件。 两种用法都执行预定的搜寻即在标准文件所处的路径下 查找嵌入文件。 #include指令中的嵌入文件中可以包含另外的 #include指令,由此形成文件的嵌套包含插入,插入的过程 是将相应文件就地代入展开的过程,最后形成一个潜在的扩 大的源文件。 编译器不直接编译后缀为.h的头文件,通过仅包含一条 头文件的.cpp文件可以间接的编译头文件。例如: StdAfx.cpp文件中仅一条双引号形式预处理指令即: #include StdAfx.h 三、#define指令 #define指令用于程序员自行定义文本替换的规则。 1. #undef取消标识符,定义#undef指令的语法格 式为: #undef 标识符

文档评论(0)

wumanduo11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档