第7章_编译预处理v2.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级语言程序设计 南京邮电大学传媒与艺术学院 * 第7章 编译预处理 * 内容提要 所谓编译预处理是指,在对源程序进行编译之前,先对源程序中的编译预处理命令进行处理;然后再将处理的结果,和源程序一起进行编译,以得到目标代码。主要包括以下几个内容: 文件包含 宏定义 条件编译 * 7.1 引言 特点: 属于编译系统功能 ( 非C语言语句 ) C 编译系统在编译前对程序中的特殊的命令所进行的“预 处理” 所有此类命令均以 “#” 开头 可分为三类(文件包含、宏定义、条件编译 ) * 文件包含是指:一个源文件可将另一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。 分别编译 文件是传统的存储单位和传统的编译单位。 将一个完整的程序放入一个文件里通常是不可能的。 节约重新编译时间。 7.2 预处理指令#include:文件包含 * 文件包含处理命令的格式: #include “包含文件名” 或 #include 包含文件名 两种格式的区别仅在于: 使用双引号:系统首先到当前目录下查找被包含文件,如果没找到,再到系统指定的“包含文件目录”(由用户在配置环境时设置)去查找。 使用尖括号:直接到系统指定的“包含文件目录”去查找。一般地说,使用双引号比较保险。 7.2 预处理指令#include:文件包含 * 文件包含的优点: 一个大程序,通常分为多个模块,并由多个程序员分别编程。 有了文件包含处理功能,就可以将多个模块共用的数据(如符号常量和数据结构)或函数,集中到一个单独的文件中。 这样,凡是要使用其中数据或调用其中函数的程序员,只要使用文件包含处理功能,将所需文件包含进来即可,不必再重复定义它们,从而减少重复劳动。 7.2 预处理指令#include:文件包含 * 编译预处理时,预处理程序将查找指定的被包含文件,并将其复制到#include命令出现的位置上。 常用在文件头部的被包含文件,称为“标题文件”或“头部文件”,常以“h”(head)作为后缀,简称头文件。在头文件中,除可包含宏定义外,还可包含外部变量定义、结构类型定义等。 一条包含命令,只能指定一个被包含文件。如果要包含n个文件,则要用n条包含命令。 如果文件1包含文件2,而文件2要用到文件3的内容,则在文件1中用include命令分别包含文件2和3,且文件3应在2之前。 文件包含可以嵌套,即被包含文件中又包含另一个文件。 7.2 预处理指令#include:文件包含 * 作为经验,头文件里通常可以包括: 类型定义 struct Point {int x,y;}; 函数声明 extern int strlen(const char*); 数据声明 extern int a; 常量定义 const float pi=3.141593; 枚举 enum Light {red,yellow,green}; 包含指令 #include stdio.h 宏定义 #define VERSION 12 条件编译指令 #ifdef __cplusplus 注释 /* check for end of file */ 7.2 预处理指令#include:文件包含 * 头文件里绝不应该有: 常规的函数定义 char get(int a){return a++;} 数据定义 int a; 数组定义 int a[10]; 7.2 预处理指令#include:文件包含 * /* mylib.h */ extern int a; /* mylib.c */ int a = 1; /* file1.c */ #include “mylib.h” void f1() { a = 2; } /* file2.c */ #include “mylib.h” void g1() { x = a; } /* file3.c */ #include “mylib.h” void h1()

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档