C程序设计 第9章--第13章
C程序设计 第9章----第13章
第9章预处理命令 区别于其它高级语言: 三种预处理功能宏定义 文件包含用命令来实现 条件编译 用命令来实现并用“#”开头
第9章 预处理命令 区别于其它高级语言: 三种预处理功能 宏定义 文件包含 条件编译 用命令来实现 用命令来实现并用“#”开头
91宏定义 用一个指定的标识符来代表一个字符串 1、不带参数的宏定义 命令的一般形式 # define标识符(宏名)字符串 如# define pi3.1415929 在预编译时,将程序中出现的宏名进行宏展开。 说明:P188
9.1 宏定义 用一个指定的标识符来代表一个字符串 1、不带参数的宏定义 命令的一般形式 #define 标识符(宏名) 字符串 如 #define PI 3.1415929 在预编译时,将程序中出现的宏名进行宏展开。 说明:P188
、带参数的宏定义 (1)命令的一般形式 # define宏名(形参表)字符串 (2)带参数的宏展开 预编译时遇到带实参的宏名时,则按命令行指定的字 符串从左到右进行置换,原则是:遇形参则以实参代 替,非形参字符原样保留,从而形成展开后的内容。 说明P190
2、带参数的宏定义 (1)命令的一般形式 #define 宏名(形参表) 字符串 (2)带参数的宏展开 预编译时遇到带实参的宏名时,则按命令行指定的字 符串从左到右进行置换,原则是:遇形参则以实参代 替,非形参字符原样保留,从而形成展开后的内容。 说明 P190
、带参数的宏定义 (1)命令的一般形式 # define宏名(形参表)字符串 (2)带参数的宏展开 预编译时遇到带实参的宏名时,则按命令行指定的字 符串从左到右进行置换,原则是:遇形参则以实参代 替,非形参字符原样保留,从而形成展开后的内容。 说明P190
2、带参数的宏定义 (1)命令的一般形式 #define 宏名(形参表) 字符串 (2)带参数的宏展开 预编译时遇到带实参的宏名时,则按命令行指定的字 符串从左到右进行置换,原则是:遇形参则以实参代 替,非形参字符原样保留,从而形成展开后的内容。 说明 P190
(3)宏名的作用域是从宏名定义命令后到本文件结束, 可用# undef终止宏名的作用域 如#ndef宏名 (4)宏定义中可以引用已定义过的宏名 (5)程序中双引号括起的字符串的内容若有与宏名相 同的子串时,一般不进行宏展开
(3)宏名的作用域是从宏名定义命令后到本文件结束, 可用#undef 终止宏名的作用域 如 #undef 宏名 (4)宏定义中可以引用已定义过的宏名 (5)程序中双引号括起的字符串的内容若有与宏名相 同的子串时,一般不进行宏展开
92文件包含 1、命令的一般形式 # include“文件名” 或# include 说明(1)文件名应是C语言的源文件名,该源文件可 以是系统提供,也可以是用户编写。头文件、标题文 件h或.c
9.2 文件包含 1、命令的一般形式 #include “文件名” 或 #include 说明(1)文件名应是C语言的源文件名,该源文件可 以是系统提供,也可以是用户编写。头文件、标题文 件.h 或 .c
92文件包含 (2)“”和<>的区别 (3)一条 include命令只能指定一个被包含的文件 2、文件包含的处理 预编译时,将被包含文件的内容全部复制到包含文件 中,文件包含可以是嵌套的
9.2 文件包含 (2)“”和的区别 (3)一条include 命令只能指定一个被包含的文件 2、文件包含的处理 预编译时,将被包含文件的内容全部复制到包含文件 中,文件包含可以是嵌套的
93条件编译 l、# Indef标识符 程序段1 #else 程序段2 #endif 当指定标识符已经被定义过,则对程序段1进 P编译,否则编译程序段2
9.3 条件编译 1、#ifdef 标识符 程序段1 #else 程序段2 #endif 当指定标识符已经被定义过,则对程序段1进 行编译,否则编译程序段2
93条件编译 2、# Ifndef标识符 程序段1 #else 程序段2 #endif 当指定标识符未被定义过,则对程序段进行 译,否则编译程序段2
9.3 条件编译 2、#ifndef 标识符 程序段1 #else 程序段2 #endif 当指定标识符未被定义过,则对程序段1进行 编译,否则编译程序段2