下载此文档

C语言程序设计.ppt


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
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可直接使用,

C语言程序设计 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wzt520728
  • 文件大小0 KB
  • 时间2015-10-23