正在加载图片...
9预处理命令 概述 宏定义 9.2 无参宏定义 922带参宏定义 93文件包含 条件编译 本章小结 9预处理命令 91概述 在前面各章中,已多次使用过以#〃号开头的预处理命令。如包含命令# include,宏定 义命令# define等。在源程序中这些命令都放在函数之外,而且一般都放在源文件的前面, 它们称为预处理部分 所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处 理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统 将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。 C语言提供了多种预处理功能,如宏定义、文件包含、条件编译等。合理地使用预处理 功能编写的程序便于阅读、修改、移植和调试,也有利于模块化程序设计。本章介绍常用的 几种预处理功能。 92宏定义 在C语言源程序中允许用一个标识符来表示一个字符串,称为宏〃。被定义为宏的标 识符称为宏名〃。在编译预处理时,对程序中所有出现的宏名〃,都用宏定义中的字符串去 代换,这称为”宏代换〃或“宏展开〃 宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的 在C语言中,"宏”分为有参数和无参数两种。下面分别讨论这两种宏〃的定义和调用。 921无参宏定义 无参宏的宏名后不带参数。 其定义的一般形式为: # define标识符字符串 其中的“#表示这是一条预处理命令。凡是以“#"开头的均为预处理命令。" define"为 宏定义命令。"标识符〃为所定义的宏名。"字符串〃可以是常数、表达式、格式串等。 在前面介绍过的符号常量的定义就是一种无参宏定义。此外,常对程序中反复使用的表 达式进行宏定义。9 预处理命令.................................................................................................................1 9.1 概述 .............................................................................................................1 9.2 宏定义..........................................................................................................1 9.2.1 无参宏定义............................................................................................1 9.2.2 带参宏定义............................................................................................4 9.3 文件包含 ......................................................................................................8 9.4 条件编译 ......................................................................................................9 9.5 本章小结 .................................................................................................... 11 9 预处理命令 9.1 概述 在前面各章中,已多次使用过以“#”号开头的预处理命令。如包含命令#include,宏定 义命令#define 等。在源程序中这些命令都放在函数之外,而且一般都放在源文件的前面, 它们称为预处理部分。 所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处 理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统 将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。 C语言提供了多种预处理功能,如宏定义、文件包含、条件编译等。合理地使用预处理 功能编写的程序便于阅读、修改、移植和调试,也有利于模块化程序设计。本章介绍常用的 几种预处理功能。 9.2 宏定义 在C语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标 识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去 代换,这称为“宏代换”或“宏展开”。 宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。 在C语言中,“宏”分为有参数和无参数两种。下面分别讨论这两种“宏”的定义和调用。 9.2.1 无参宏定义 无参宏的宏名后不带参数。 其定义的一般形式为: #define 标识符 字符串 其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为 宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。 在前面介绍过的符号常量的定义就是一种无参宏定义。此外,常对程序中反复使用的表 达式进行宏定义
向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有