第13章+预编译命令技术方案.pptx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章 预编译命令;本章能力要求 基本技能 本章小结 习题 ;通过本章的学习,要求对以下内容达到相关的技能: 1.理解预编译的概念以及在源程序中使用预编译命令的作用; 2.理解并掌握文件包含命令的使用方法; 3.学会并熟练掌握带参数和不带参数的宏定义命令的格式与用法; 4.了解条件编译命令的形式及基本用法。;13.2.1 预编译的概念和作用 13.2.2 文件包含 13.2.3 宏定义 13.2.4 条件编译;概念及作用 指在源程序编译之前由编译预处理程序所做的工作,生成扩展C源程序 种类 文件包含 #include 比如,#include stdio.h 宏定义 #define 例如,#define Max 100 条件编译 #ifdef…#elseif…#endif 格式 以”#”开头 独占行编写 语句结尾无分号;概念及作用 在一个源文件中将另一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中 格式 #include文件标识 (用户目录/系统目录) 或:#include文件标识 (系统目录) 例: #includemath.h /* 包含系统头文件 */ #includemy.h /* 包含自己的头文件 */ 说明 被包含的文件可以是系统提供的头文件,也可以是用户自己设计的文件 被包含的文件不一定是 *.h 文件,也可以是 *.c 、 *.cpp 或*.txt等类型的文本文件 可同时书写多个#include命令包含多个文件 文件包含可以嵌套使用 ;宏定义的格式 不带参数的宏定义 #define 宏名 [宏体] 带参数的宏定义 #define 宏名(参数表) [宏体] 取消宏定义 #undef 宏名 有关宏定义的一般说明 有关带参数的宏定义的说明 带参数宏和函数的区别 ;有关宏定义的一般说明 宏名一般习惯用大写字母表示,用来与变量名区别,但这并非规定,可以用小写 使用宏名代替字符串可以减少程序中重复书写字符串的工作量 宏定义是用宏名代替一个字符串,即只进行简单的字符串置换,不检查正确性 #define命令定义在程序的函数之外,宏名的有效范围从它出现到源文件结束 在进行宏定义时,可以引入已定义的宏名,可层层置换,但不能重复定义 可以用#undef命令终止宏定义的作用域 程序中用双引号括起来的字符串,以及标识符中的部分,即使有与宏名完全相同的成分,由于它们不是宏名,因此在编译预处理时,不会进行替换;有关带参数的宏定义的说明 带参数中的宏的展开只是将后面括号中的实参字符串代替#define命令行中的形参 带参数宏定义时,宏名和参数的括号之间不应加空格,否则将空格以后的字符作替换字符串的一部分 带参数的宏定义要求实参个数与形参个数相同,但没有类型要求 如果宏定义中包含“##”,则宏替换时将“##”去掉,并将其前后的字符串合在一起。 注意宏定义中圆括号的使用。 宏定义中由双引号括起来的字符串常量,若含有形参,则在做宏替换时实参是不会替换此双引号中的形参的。;带参数宏和函数的区别 ;作用 按照不同的条件去编译程序的不同部分,因而产生不同的目标代码文件 三种类型 #ifdef 标识符 程序段1 [#else 程序段2] #endif 作用:若标示符已被#define命令定义,则编译程序段1,否则编译程序段2。#else部分的内容可以省略,即程序段2可以省略。;三种类型 #ifndef 标识符 程序段1 [#else 程序段2] #endif 作用:若标示符未被#define命令定义,则编译程序段1,否则编译程序段2。#else部分的内容可以省略,即程序段2可以省略。与第一种形式的功能相反。;三种类型 #if 常量表达式 程序段1 [#else 程序段2] #endif 作用:若表达式的值为真(非0),则编译程序段1,否则编译程序段2。#else部分的内容可以省略,即程序段2可以省略。可以实现给定条件,使程序在不同条件下执行不同功能。; 预编译命令是C语言特有的功能,它是在对源程序正式编译之前完成的,灵活使用预编译命令有利于程序的阅读、修改、调试和移植。需要注意的是,预编译命令本身并不形成任何C程序代码,它仅为程序编译做准备。 文件包含是预编译的一个重要功能,它可以把多个源文件连接成一个源文件进行编译,结果生成一个目标文件。 宏定义是用一个标识符表示一个字符串,该字符串可以是常量、变量或表达式。在宏调用时用该字符串替换宏名。宏定义与参数相似,可以带参数,在调用时以实参置换形参。为避免宏置换发生错误,宏

文档评论(0)

富贵礼包 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档