1 / 27
文档名称:

第12章 编译预处理.ppt

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

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

分享

预览

第12章 编译预处理.ppt

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

下载得到文件列表

第12章 编译预处理.ppt

文档介绍

文档介绍:第12章编译预处理
了解编译预处理
宏定义
文件包含
条件编译
了解编译预处理
C语言所提供的“编译预处理”功能是它区别于其他高级语言的又一重要特征,其主要功能包括三种:宏定义、文件包含和条件编译,分别由三种命令来实现。为了区别于C语句,预处理命令必须出现在一行的开始并以“#”号打头。
宏定义
宏定义由#define命令实现,根据实际应用的需要可以分为不带参数的宏定义和带有参数的宏定义两种命令形式。
不带参数的宏定义
命令的一般形式为:
#define 标识符字符串
定义中的“标识符”称为“宏名”。这一命令的作用仅仅是表明用指定的宏名来代替一个指定的字符串。例如:
#define PI 3 .1415926
它的作用是指定用宏名PI来代替“3 .1415926”这个字符串。在预编译时,程序中所有出现“宏名”的地方,都将由这个字符串的内容进行替换,此过程称为“宏展开”。
说明
(1)不带参数的宏定义常常被用于定义符号常量。这样既可以提高程序的通用性,也便于修改。
用宏名限定数组的大小。
#define N 10
/* 定义宏名N */
void ArrIn(int a[])
{ int i;
for(i=0; i<N; i++)
/* 为N个元素赋值*/
scanf("%d",&a[i]);
}
main( )
{ int x[N];
/* 定义有N个元素的数组*/
ArrIn(x);

}
以上是我们在编程中常用的方法:首先利用宏定义指定用N代表字符串10;所以主函数中定义的数组大小是10;函数ArrIn中读入的元素个数也是10。当需要改变数组大小时,只需改动#define命令行,而不用改动程序的其他部分。
(2)宏展开时系统不作语法检查,若定义不当,要待编译展开源程序时,才会引发错误。
例如:
#define PI
main( )
{ float s, r=;
s=PI*r*r;
printf("s=%f\n",s);
}
程序中在定义代表值的宏名PI时,。这一宏定义命令本身并不构成错误。因为宏名PI代表的是字符串“”,而不是数值。但在程序中引用了宏名PI来计算圆面积,赋值语句:
s=PI*r*r;
经宏展开后变为:
s=*r*r;
从而导致编译出错。虽然出错位置在此赋值语句,但引发这一错误的根源还是上述宏定义命令。

最近更新

2026年以清明节议论作文初二 7页

2026年以我学会了坚强初二话题作文 7页

2026年以微观视角生动诠释“群众利益无小事”.. 3页

2026年以坚持为话题的小学作文500字 6页

高分子材料在能源存储与转换中的应用 29页

过敏原检测与皮疹诊断 36页

2026年仓库管理员终个人的工作总结 15页

顾方舟核潜作战理论创新 35页

高净值个人投资者行为分析 21页

辐照杀菌技术进展 37页

2024年安徽省马鞍山市单招职业倾向性测试模拟.. 41页

2024年安徽粮食工程职业学院单招职业技能考试.. 41页

2024年安徽艺术职业学院单招职业技能考试模拟.. 39页

2024年安徽邮电职业技术学院单招职业技能考试.. 39页

2024年安阳学院单招职业技能测试题库含答案 40页

2024年安顺职业技术学院单招职业倾向性考试题.. 39页

2024年宜昌科技职业学院单招职业技能测试题库.. 41页

2024年宝鸡三和职业学院单招职业技能测试题库.. 41页

2024年山东交通职业学院单招职业倾向性考试模.. 40页

2024年山东力明科技职业学院单招职业倾向性考.. 40页

2024年山东华宇工学院单招职业倾向性测试模拟.. 40页

2024年山东城市建设职业学院单招职业倾向性考.. 40页

2024年山东文化产业职业学院单招职业倾向性测.. 40页

2024年山东水利职业学院单招职业倾向性考试模.. 39页

2024年山东电子职业技术学院单招职业倾向性考.. 40页

2024年山东省威海市单招职业倾向性测试模拟测.. 41页

2024年山东省烟台市单招职业倾向性测试模拟测.. 40页

2024年山东科技职业学院单招职业倾向性测试模.. 41页

2024年山东胜利职业学院单招职业倾向性测试模.. 41页

2024年山西华澳商贸职业学院单招职业适应性考.. 40页