#define是C语言提供的宏定义方法,它的主要目的是让编程人员在编程时提供一些方便,并且在某种程度上可以提高程序的运行效率。 常见的宏定义有两种: (1)简单宏定义: #define<宏名>字符串>。 例如:#definePI3、1415926、 (2)宏定义为参数。 #define<宏名>(参数表>)<宏体>。 例如:#defineA(x)x。 当TurboC等集成开发环境中编译好的源程序时,实际上要经过预处理、编译、汇编和连接的一些过程。预处理程序在此生成编译器的输出,它完成下列功能: (1)文件包含 从源程序中将#include扩展为文件主体,也就是,找到包含、h文件并将其展开到#include所在的位置。 (2条件编译 预处理器通常会按照诸如#if和#ifdef这样的命令以及随后的条件,把源程序中的一部分包括进去或排除在外的语句通常会被转化为空行。 (3)宏扩展 一个预处理程序将宏的引用从源程序文件扩展为对应的宏定义,也就是本文提到的#define的功能是由预处理程序完成的。 (4)防止重复包括一个头文件。 优势:1、便于编程修改;2提高程序运行效率。 C++运行时被划分为哪些区域。1、栈区(stack)——由编译器自动指派来释放,保存函数的参数值,本地变量的值,等等。在处理数据结构时就像是栈。 2、堆区(heap)——通常由程序员分配释放,如果程序员没有释放,操作系统可能在程序结束时回收。请注意,这和数据结构中的堆是两码事,而且分配方式和链表很相似,哈哈。 3、全局区(静态区)(static)—将全局和静态变量的存储放在一块中,将初始化的全局变量和静态变量放在一块区域中,未初始化的全局变量和未初始化的静态变量位于相邻区域。-系统在程序结束后释放。 4、文本常量区—常量字符串将放在此处。系统在程序结束后释放。 5、程序代码区——存放函数体的二进制代码。 |
|