
c++中何为宏定义?
展开全部
C/C++中的宏就是预处理命令,在编译开始之前进行替换相应的替换规则。
最常见的就是#define,其次就是预编译宏...比如:
#define S(x) ((x)*(x))
int main(){
int a=S(5);
}
//编译时就会替换成 int a=((5)*(5))
宏在C里有独特的用处,但因为是简单替换经常会发生问题,所以在C++中不建议这样用。比如:
#define S(x) x*x
int a=S(5+1) //实际为 a=5+1*5+1,而不是a=6*6
其他方面,#define定义的常量,不能算作真正的常量,逃避了编译器的检查,也会发生一定的问题,所以在C++中很少使用宏。
在C++中,可以用内联函数(inline)代替,宏定义的伪函数。const定义的常量代替#define定义的常量。当然,有些地方宏依然有不可代替的作用,比如一些头文件中,仍是不得不使用的防护技术,比如
#pragma once
#ifndef XXX
#define XXX
#endif
这些防护技术都可以放置重复声明等问题...
展开全部
宏是一种文本替换,在编译初期展开。直接举例说明
#define AAA BBB
这样所有出现标识符AAA的地方,都会被替换成标识符BBB
#define FFF(x) ((x)*(x))
这样替换规则是,比如FFF(9),则替换成((9)*(9))
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通俗地讲:
就相当于别名,替换
比如:你可以用shuxue 代替 math
因为你一看到shuxue你就立刻知道是什么意思,看到math却不一定知道
就相当于别名,替换
比如:你可以用shuxue 代替 math
因为你一看到shuxue你就立刻知道是什么意思,看到math却不一定知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说的对,就是起别名,方便程序员。在预处理的时候会把宏展开。然后进行编译
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++中不建议使用宏
可以用const和枚举替换
可以用const和枚举替换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询