C++之define

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;

}

 

 

 

 

原文链接: https://www.cnblogs.com/jiayouya-susu/p/11919684.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++之define

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/306335

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月16日 上午4:00
下一篇 2023年2月16日 上午4:03

相关推荐