正在加载图片...
、函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,不分配内 存单元,不进行值的传递,也无“返回值” 对函数中的实参和形参都要定义类型,类型应一致。而宏不存在类型问题,宏名和参数无类型,只 个符号代表,展开时代入指定的字符即可。 4、调用函数只可得到一个返回值 而用宏可以设法得到几个结果。 使用宏次数多时,宏展开后使源程序增长, 而函数调用不使源程序变长。 宏替换不占运行时间,只占编译时间 而函数调用则占用运行时间(分配单元、保留现场、值传递、返回) 般用宏代表简短的表达式比较合适 “文件包含”处理 “文件包含”处理是指将指定的被包含文件的全部内容插到该控制行的位置处,使 其成为源文件的一部分参与编译。因此,被包含的文件应该是源文件 通常置于源程序文件的首部,故也称为“头文件” C编译系统提供的头文件扩展名为“,h”,但设计者可根据实际情况,自行确定包含 文件的后缀、名字及其位置。 一般形式,# include“文件名” 或# include<文件名 注:被包含的文件应是源文件,而不应是目标文件。 头文件除了可以包含函数原型和宏定义外,也可以包括结构体类型定义和全局变量定 说明: 1、一个 include命令只能指定一个被包含文件,如果要包含n个文件,要用n个 include命 2、如果文件1包含文件2,而文件2中要用到文件3的内容,则可在文件1中用两个 include 命令分别包含文件2和文件3,而且文件3应出现在文件2之前,即在“filc”中定义:2、函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,不分配内 存单元,不进行值的传递,也无“返回值”。 3、对函数中的实参和形参都要定义类型,类型应一致。而宏不存在类型问题,宏名和参数无类型,只 是一个符号代表,展开时代入指定的字符即可。 4、调用函数只可得到一个返回值, 而用宏可以设法得到几个结果。 5、使用宏次数多时,宏展开后使源程序增长, 而函数调用不使源程序变长。 6、宏替换不占运行时间,只占编译时间。 而函数调用则占用运行时间( 分配单元、保留现场、值传递、返回) 一般用宏代表简短的表达式比较合适。 2. “文件包含”处理 “文件包含”处理是指将指定的被包含文件的全部内容插到该控制行的位置处,使 其成为源文件的一部分参与编译。因此,被包含的文件应该是源文件。 通常置于源程序文件的首部,故也称为“头文件”。 C 编译系统提供的头文件扩展名为“.h”,但设计者可根据实际情况,自行确定包含 文件的后缀、名字及其位置。 一般形式,#include “文件名” 或 #include <文件名> 注:被包含的文件应是源文件,而不应是目标文件。 头文件除了可以包含函数原型和宏定义外,也可以包括结构体类型定义和全局变量定 义等。 说明: 1、一个 include 命令只能指定一个被包含文件,如果要包含 n 个文件,要用 n 个 include 命 令。 2、如果文件 1 包含文件 2,而文件 2 中要用到文件 3 的内容,则可在文件 1 中用两个 include 命令分别包含文件 2 和文件 3,而且文件 3 应出现在文件 2 之前,即在“file1.c”中定义:
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有