码迷,mamicode.com
首页 > 编程语言 > 详细

C++之define

时间:2019-11-23 21:37:14      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:而不是   temp   const   str   typename   apt   return   chapter   获取   

1.宏定义

1)关键字 #define 

表示变量值:#define CHAPTER   1.23

表示函数:#define MAXVALUE(a,b)    (a>b?a:b)

在编译前,预处理器会将其替换成对应的值或表达式;

2)缺点

>>当运用一个宏定义的常量但获取编译错误信息时,提示的错误信息可能是具体的值比如本例中1.23,而不是CHAPTER;

>>如果使用宏定义的变量CHAPTER 有多处,所有用到的地方都会被替换,就会出现多份1.23;

 

2.可以以const、enum、inline来替换#define

1)对于单纯变量,可以用 const或enum替换

      >>对于一些变量例如小数:  #define CHAPTER   1.23  可以替换为  const double CHAPTER  =1.23

      >> 如果为整数可用const/enum,例如     #define  PAGE2     2   可以替换为 const int PAGE2=2  或者 enum {PAGE2=2}

2)对于形似函数的宏可以用inline

例如#define MAXVALUE(a,b)    (a>b?a:b)可替换为

template<typename T>

inline T  maxValue(const T&a,const T& b)

{

      return a>b?a:b;

}

 

 

 

 

C++之define

标签:而不是   temp   const   str   typename   apt   return   chapter   获取   

原文地址:https://www.cnblogs.com/jiayouya-susu/p/11919684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!