第六讲:第六章编译预处理
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章编译预处理
C语言的一个重要特征是它有编译预处理,一个高级语言源程序要在计算机上运行,必须先用编译预程序将其翻译成为机器语言,编译包括词法分析,语法分析,代码生成,代码优先等步骤,有时在编译之前还要做些预处理功能。
如去掉格式,变换格式等。
C 语言允许在源程序中包含预处理命令,在正式编译之前系统先对这些命令“预处理”,然后整个源程序在进行通常的编译处理。
C语言提供的预处理功能主要有3种:文件包含宏定义条件编译
一.文件包含:
一般形式:#include “文件名”
如:#include”stdio.h”#include”math.h”等
注1.一个#include命令只能指定一个被包含文件,如果要包含多个文件,则要用多个#include命
令。
注2.在#include命令中,文件名可以用双引号或尖括号括起来
如:#include“stdio.h”#include <stdio.h> 二.宏定义:
宏定义有两种形式:一种是不带参数的宏定义,另
一种是带参数的宏定义。
1.不带参数的宏定义:
一般形式:#define 宏名字符串
作用:用一个指定的宏名来代表一个常量。
宏名通常用大写。
例:
#include“stdio.h”
#define M 3
#define N M+1
#define S N*N/2
main( )
{
printf(“S=%d\n”,S);
printf(“5*S=%d\n”,5*S);
}
2.带参数的宏定义:
一般形式:#define 宏名(参数表) 字符串
例:
#include”stdio.h”
#define MAX(x,y) (x>y?x:y)
main( )
{
int a,b;
scanf(“%d%d”,&a,&b);
printf(“MAX is %d\n”,MAX(a,b)); }。