永发信息网

C++中哪些机制可替代宏定义常量?

答案:2  悬赏:30  手机版
解决时间 2021-01-29 07:11
  • 提问者网友:兔牙战士
  • 2021-01-28 15:32
C++中哪些机制可替代宏定义常量?
最佳答案
  • 五星知识达人网友:山有枢
  • 2021-01-28 16:50
#define PI 3.14
const double pi=3.14;

C++ 语言可以用const 来定义常量,也可以用#define 来定义常量。但是前者比后
者有更多的优点:
(1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安
全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会
产生意料不到的错误(边际效应)。
(2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。
全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-01-28 17:14

宏的定义注意加括号,宏仅是字符串替换

现在这种写法,宏t2 是t1 - t1,字符串替换后是x+x-x+x

如果是#define t1 (x+x), 那么t2就是和你想的一样,是0了

但常量是占存储空间的,打印取决于初始化情况

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯