第八章__预处理命令.pptVIP

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

第八章 预处理命令 所谓编译预处理是指:在对源程序进行编译之前,先对源程序中的编译预处理命令进行处理;然后再将处理的结果,和源程序一起进行编译,以得到目标代码。 预处理语句主要包括如下三种: 1.宏定义 2.文件包括 3.条件编译(自学) C语言编译系统中以“.h”为扩展名的文件称为头文件,在使用C语言编译系统提供的库函数进行程序设计时,经常需要在源程序中包含相应的“头文件”,如“stdio.h”、“string.h”等。 用C语言设计程序时,通常将全局变量的定义、符号常量的定义、结构类型的定义以及函数类型说明等语句放在头文件中。这样,对于需要该文件的源程序来讲,都可以通过#include语句将其包含到程序中。正确使用#include语句,将会减少不必要的重复工作,提高编程效率。 8.1 宏定义 不带参数宏定义 一般形式: #define 宏名 [宏体] 功能:用指定标识符(宏名)代替字符序列(宏体) 带参数宏定义 不是进行简单的字符串替换,还要进行参数替换 一般形式: #define 宏名(参数表) 宏体 带参的宏与函数区别 P170 8.2 文件包含 功能:一个源文件可将另一个源文件的内容全部包含进来 一般形式: #include “文件名” 或 #include 文件名 3.文件包含的优点 一个大程序,通常分为多个模块,并由多个程序员分别编程。有了文件包含处理功能,就可以将多个模块共用的数据(如符号常量和数据结构)或函数,集中到一个单独的文件中。这样,凡是要使用其中数据或调用其中函数的程序员,只要使用文件包含处理功能,将所需文件包含进来即可,不必再重复定义它们,从而减少重复劳动。 被包含文件内容 源文件(*.c) 头文件(*.h) 8.3 条件编译 条件编译可有效地提高程序的可移植性,并广泛地应用在商业软件中,为一个程序提供各种不同的版本。 2.功能:当“标识符”已经被#define命令定义过,则 编译程序段1,否则编译程序段2。 (1)在不同的系统中,一个int 型数据占用的内存字 节数可能 是不同的。 二、 #if ~ #endif 3.关于#ifndef ~ #endif命令 格式与#ifdef ~ #endif命令一样,功能正好与之 相反。 2.功能: 当表达式为非0(“逻辑真”)时,编译程序段1,否则编译程序段2。 * * 它不是C语言本身的组成部份,不能直接对它们进行编译 宏体可缺省,表示宏名 定义过或取消宏体 定义位置:任意(一般在函数外面) 作用域:从定义命令到文件结束 #undef可终止宏名作用域 格式: #undef 宏名 如 #define YES 1 #define NO 0 #define PI 3.1415926 #define OUT printf(“Hello,World”); 例 #define YES 1 main() { …….. } #undef YES #define YES 0 max() {…….. } YES原作用域 YES新作用域 宏名一般习惯用大写字母表示,以便和变量名区别 宏定义可嵌套,不能递归 例 #define MAX MAX+10 ( ? ) 宏展开:预编译时,用宏体替换宏名 宏定义只是用宏名来代替字符串,只做置换, ---(预编译时)不作语法检查 宏定义不是C语句,不必在行末加分号,若加了分号则连分号一起置换 如 if(x==YES) printf(“correct!\n”); else if (x==NO) printf(“error!\n”); 展开后: if(x==1) printf(“correct!\n”); else if (x==0) printf(“error!\n”); #define PI 3.1415 ; area = PI * r *

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档