- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
说明: 如在函数定义中没有说明extern或static则隐含为extern 在一个文件的函数中调用其它文件中定义的外部函数时,应使用extern说明被调函数为外部函数 如:F1.C (文件一) main( ) { extern int f1( int i ); /*外部函数说明,表示f1函数在其它文件中*/ … } F2.C (文件二) extern int f1( int i); /*外部函数定义*/ { … } 编译预处理是C语言编译系统的 一个组成部分,是在编译前由编译系统中的预处理程序对源程序的预处理命令进行加工,以得到扩展的C源程序的过程 格式: 源程序中的预处理命令均以“#”开头 结束不加分号,以区别源程序中的语句 它们可以写在程序中的任何位置,作用域是自出现点到源程序的末尾 常用的有文件包含命令、宏定义命令和条件编译命令 一、文件包含 功能:使一个源文件将另一个源文件的内容全部包含进来 一般形式: #include “文件名” 或 #include 文件名 区别:使用双引号表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找;使用尖括号则表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的) 处理过程:预编译时,用被包含文件的内容取代该预处理命令,再把“包含”后的文件作为一个源文件编译 #include “file2.c” file1.c file2.c file1.c B A B A 被包含文件内容:源文件(*.c)、头文件(*.h) 头文件:扩展名为“.h”的文件被称为头文件;它们包含了大量的符号常量定义、数据结构定义、函数说明等 注意: 文件包含命令放在源程序的开头较好,因为被包含文件的 内容是被嵌入到该文件包含命令所在的位置 一条文件包含命令只能包含一个文件,如想包含多个文件 就需要多条命令 文件包含命令中的文件名必须包括文件名及其扩展名 文件包含可以嵌套 #include “file2.c” file1.c A file3.c C #include “file3.c” file2.c B A C B file1.c 二、宏定义 C语言源程序中允许用一个标识符来表示一个字符串,称为宏定 义;标识符称为宏名; 在编译预处理时,对程序中出现的所有 “宏名”,都用宏定义中的字符串去代换,称为宏代换或宏展开 宏定义由源程序中的宏定义命令完成; 宏展开由编译预处理程序自动完成 无参数宏 一般形式: #define 标识符 字符串 其中:#代表本行是编译预处理命令 define是宏定义命令 标识符是所定义的宏名 字符串是宏名所代替的内容,可以是常数、表达式等 作用:在宏定义之后, 该程序中宏名就代表了该字符串 说明: 宏展开时使用字符串来代替宏名,编译预处理程序对它不做任何检查,如果有错误,只能在已经展开宏的源程序中发现 习惯上宏名用大写来表示,以区别于变量名 行末一般不加分号;若加分号,则把分号也看作字符串的一部分 宏定义必须写在函数之外,作用域从宏定义命令开始直到源程序的结束 #undef可终止宏名作用域,格式: #undef 宏名 在程序中不能对宏名赋值 宏定义允许嵌套,即在宏定义的字符串中可以使用已经定义的宏名 ,但不允许递归 引号中的内容与宏名相同也不置换 例 #define YES 1 main( ) { …….. } #undef YES #define YES 0 max( ) { …….. } YES原作用域 YES新作用域 例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2; 宏展开:var= 80+40 *2; 例 #define PI 3.14159 printf(“2*PI=%f\n”, PI*2); 宏展开:printf(“2*PI=%f\n”, 3.14159*2); #define MAX MAX+10 (×) 例5.18 #define PI 3.14159 #includestdio.h main( ) { float r, len, area; r=3.0; len=2*PI*r; area=PI*r*r;
您可能关注的文档
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第二章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第九章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第六章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第七章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第三章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第十章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第四章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第五章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 第一章.ppt
- C语言程序设计( 第五版) 高职计算机大类专业 董汉丽 习题答案.doc
文档评论(0)