1 / 11
文档名称:

C语言程序设计.ppt

格式:ppt   页数:11页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言程序设计.ppt

上传人:wzt520728 2015/10/23 文件大小:0 KB

下载得到文件列表

C语言程序设计.ppt

相关文档

文档介绍

文档介绍:C语言程序设计
西北大学信息学院
孙霞
******@nwu.
第八章预处理命令
ANSI C标准规定可以在C源程序中加入预处理命令,以提高编程效率。预处理命令不是C语言本身的组成部分,因此不能直接对其编译。预处理命令是在编译之前被处理。经过预处理后的程序不再包括预处理命令,然后将进行预处理后源程序一起再进行编译处理,最后得到目标代码。
C语言提供三种预处理命令:
宏定义;用宏定义命令来实现(#define)
文件包含;用文件包含命令实现(#include)
条件编译。用条件编译命令实现(#ifdef)
这些命令以符号“#”开头,结尾没有分号(;)。
这些命令的作用域是从定义的地方开始到源文件结束。

不带参数的宏定义
功能:用一个指定的标识符(宏名)来代表一个字符串。
优点:1)能够使用户用一个简单的名字代替一个长的字符串,便于书写和记忆。2)利于程序修改,只改变#define命令行,一改全改。
形式:#define 标识符任意字符串序列
#define PI
main()
{float l,s,r=5,v;
l=*PI*r;
s=PI*r*r;
v=*PI*r*r*r;
printf(“%f,%f, %f\n",l,s,v);
}
main()
{float l,s,r=5,v;
l=**r;
s=*r*r;
v=**r*r*r;
printf(“%f,%f, %f\n",l,s,v);
}
预处理
“宏展开”
说明:
宏定义是用宏名代替一个字符串,也就是作简单的置换,不作语法检查。如:
#define PI ;
area=PI*r; 预处理后为 area=;*r
宏名的有效范围为定义命令之后到本源文件结束。可以用#undef命令终止宏定义的作用。如:
#define G
main()
{
}
#undef G
f1()
{
}
G有效范围
在进行宏定义时,可以引用已定义的宏名。如:
#define R
#define PI
#define L 2*PI*R
#define S PI*R*R
main()
{printf("L=%f\nS=%f\n",L,S);
}
预处理
main()
{
printf("L=%f\nS=%f\n",2**,**);
}
用双引号括起来的字符串内
的字符,即使与宏名相同,
也不进行置换。如L,S
area=3*2
带参数的宏定义
进行字符串替换,还要进行参数替换。
定义形式为:#define 宏名(参数表) 字符串
包含括弧中指定的参数
如: #define S(a,b) a*b

area=S(3,2);
注意:不能写成#define S (a,b) a*b
不能有空格

#define PI
#define S(r) PI*r*r
main()
{float a,area;
a=;
area=S(a);
printf(“%f,%f\n",a,area);
}
预处理
main()
{float a,area;
a=;
area=*a*a;
printf(“%f,%f\n",a,area);
}
如果有以下语句,
area=S(x+y);
预处理后
结果为?
area=*x+y*x+y;
#define S(r) PI*(r)*(r)
area=*(x+y)*(x+y);
2.“文件包含”命令
文件包含处理是指一个源文件可以将另一个源文件的全部内容包含进来。
一般形式为:#include "文件名"
#include " "
A

B


B
A
将file2的全部内容复制插入到include命令处
文件包含是可以嵌套的:
#include " "
#include" "

#include"" #include" "

也可按如下方式:



编译后
文件1为
file3中的全局变量,file2、
file1可直接使用,