设为首页 加入收藏

TOP

2.2.5 宏定义
2013-10-07 15:16:47 来源: 作者: 【 】 浏览:62
Tags:2.2.5 定义

2.2.5   宏定义

1. 宏定义

宏定义是用一个指定的标识符来代替一个字符串,一般形式如下。

  1. #define 标识符 字符串 

用#define来定义符号常量如下。
  1. #define PI 3.14 

上行代码表示用标识符PI代替字符串“3.14”,在编译预处理时,将程序中在该命令以后出现的所有PI都用“3.14”代替。这个标识符被称为宏名,在预编译时将宏名替换成字符串的过程称为宏展开,#define是宏定义命令。使用宏定义应注意以下几点。

宏定义是用宏名替换字符串,但不进行正确性检查。

宏定义不用在行末加分号。

#define命令出现在程序中函数的外面,宏名的有效范围为定义命令之后到源文件结束。

可以使用#undef命令终止宏定义的作用域。

在进行宏定义时,可以引用已定义的宏名,还可以层层替换。

用双引号括起来的字符串内的字符,不进行替换。

宏定义只进行字符替换,不分配内存空间。

2. 带参数的宏定义

除了进行简单的字符串替换外,还可以进行参数替换。其一般形式如下。

  1. #define 宏名(参数表) 字符串 

带参数的宏定义如下。
  1. 01   #define C(a,b) a*b  
  2. 02   语句D = C(3,5);相当于D = 3*5; 

在使用带参数的宏定义时需要注意以下两点。

带参数的宏展开,只是使语句中宏名后面括号内的实参字符串,代替#define命令中的形参。

在宏名与参数的括号间不能加空格。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.3.1 简单类型 下一篇2.4 MFC常见数据类型

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: