1 / 15
文档名称:

第八章 预编译命令.ppt

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

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

分享

预览

第八章 预编译命令.ppt

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

第八章 预编译命令.ppt

文档介绍

文档介绍:C程序设计
南京师范大学
地图学与地理信息系统04级
专业选修课
主讲教师: 汪闽
第八章编译预处理
宏定义
文件包含
条件编译
作用:对源程序编译之前做一些处理,生成扩展C源程序
种类
宏定义#define
文件包含#include
条件编译#if--#else--#endif等
格式:
“#”开头
占单独书写行
语句尾不加分号
不带参数宏定义
一般形式: #define 宏名[宏体]
功能:用指定标识符(宏名)代替字符序列(宏体)
宏展开:预编译时,用宏体替换宏名---不作语法检查
宏体可缺省,表示宏名
定义过或取消宏体
定义位置:任意(一般在函数外面)
作用域:从定义命令到文件结束
#undef可终止宏名作用域
格式: #undef 宏名
宏定义可嵌套,不能递归
例#define MAX MAX+10 ()
引号中的内容与宏名相同也不置换
宏定义中使用必要的括号()
宏定义
一般形式: #define 宏名(参数表) 宏体
例#define S (r) PI*r*r
相当于定义了不带参宏S,代表字符串“(r) PI*r*r”
宏展开:形参用实参换,其它字符保留
宏体及各形参外一般应加括号()
例#define S(a,b) a*b
………..
area=S(3,2);
宏展开: area=3*2;
不能加空格
例#define POWER(x) x*x
x=4; y=6;
z=POWER(x+y);
宏展开:z=x+y*x+y;
一般写成: #define POWER(x) ((x)*(x))
宏展开: z=((x+y)*(x+y));

#define MAX(x,y) (x)>(y)?(x):(y)
…….
main()
{ int a,b,c,d,t;
…….
t=MAX(a+b,c+d);
……
}
宏展开:t=(a+b)>(c+d)?(a+b):(c+d);
int max(int x,int y)
{ return(x>y?x:y);
}
main()
{ int a,b,c,d,t;
…….
t=max(a+b,c+d);
………
}
例用宏定义和函数实现同样的功能
带参宏
函数
处理过程
不分配内存
简单的字符置换
分配内存
先求实参值,再代入形参
处理时间
编译时
程序运行时
参数类型
无类型问题
定义实参,形参类型
程序长度
变长
不变
运行速度
不占运行时间
调用和返回占时间
带参的宏与函数区别
功能:一个源文件可将另一个源文件的内容全部包含进来
一般形式: #include “文件名”
或#include <文件名>
#include “”




A
B
A
处理过程:预编译时,用被包含文件的内容取代该预处理命令,再对“包含”后的文件作一个源文件编译
<> 直接按标准目录搜索
“”先在当前目录搜索,再搜索标准目录
可指定路径
文件包含
源文件(*.c)
头文件(*.h)
宏定义
数据结构定义
函数说明等
文件包含可嵌套
#include “”

A

C
#include “”

B

A


被包含文件内容
/* */
#define sqr(x) ((x)*(x))
#define cube(x) ((x)*(x)*(x))
#define quad(x) ((x)*(x)*(x)*(x))
/**/
#include <>
#include "d:\fengyi\bkc\"
#define MAX_POWER 10
void main()
{ int n;
printf("number\t exp2\t exp3\t exp4\n");
printf("----\t----\t-----\t------\n");
for(n=1;n<=MAX_POWER;n++)
printf("%2d\t %3d\t %4d\t %5d\n",n,sqr(n),cube(n),quad(n));
}
例文件包含举例

最近更新

2025年绍兴职业技术学院单招综合素质考试模拟.. 39页

2026年常德科技职业技术学院单招综合素质考试.. 43页

2025年苏州工业园区服务外包职业学院单招职业.. 39页

2025年苏州百年职业学院中单招职业倾向性考试.. 40页

2026年广东舞蹈戏剧职业学院单招职业适应性测.. 43页

2025年萍乡卫生职业学院单招职业适应性测试题.. 41页

2025年衡阳科技职业学院单招职业适应性测试题.. 38页

2025年西双版纳职业技术学院单招职业技能考试.. 42页

2026年广西经贸职业技术学院单招职业适应性测.. 42页

2025年西安汽车职业大学单招职业倾向性测试模.. 39页

2026年恩施职业技术学院单招职测考试题库必考.. 41页

2025年贵州盛华职业学院单招职业适应性考试模.. 40页

2025年贵州职业技术学院单招职业适应性考试模.. 41页

2026年昆明高职单招试题及答案1套 43页

2025年辽宁省沈阳市单招职业适应性测试模拟测.. 42页

2025年辽宁职业学院单招职业倾向性考试模拟测.. 41页

2025年辽阳职业技术学院单招综合素质考试题库.. 38页

2026年江西婺源茶业职业学院单招职业倾向性测.. 43页

2026年江西省鹰潭市单招职业适应性考试题库及.. 42页

2025年郑州城建职业学院单招职业倾向性测试题.. 41页

2025年郑州汽车工程职业学院单招综合素质考试.. 40页

2025年郑州电子商务职业学院单招职业适应性测.. 41页

2025年郑州铁路职业技术学院单招职业倾向性考.. 39页

2025年鄂尔多斯职业学院单招职业倾向性测试题.. 41页

2025年重庆化工职业学院单招职业适应性测试模.. 39页

2025年重庆安全技术职业学院单招职业适应性考.. 41页

2025年重庆市乐山市单招职业适应性测试模拟测.. 42页

2026年清远职业技术学院单招职业适应性考试模.. 41页

2025年重庆建筑科技职业学院单招职业倾向性测.. 40页

【人教版英语字帖】七年级下册单词表衡水体字.. 42页