#define到底是干嘛的?告诉你个冷知识
  • 板块学术版
  • 楼主AKPC
  • 当前回复60
  • 已保存回复60
  • 发布时间2022/6/18 15:21
  • 上次更新2023/11/3 16:46:44
查看原帖
#define到底是干嘛的?告诉你个冷知识
540363
AKPC楼主2022/6/18 15:21

大家在题解中应该看过类似的代码吧

更加方便的【类型】

#define ll long long
#define db double

你觉得有什么用?其实,敲N遍long long还有 double会很累,那么你可以用上述代码代替,以后只要敲两个字母就行了!既方便又简单!

新方法定义【变量】

#define MAXN 0x7f

使用define也可以定义变量,你想到了吗?在程序中使用MAXN会替换成0x7f(127)

【函数】定义法

#define Add(a,b) a+b;

这样定义函数减少了一些代码量,但是,这里有个缺陷

cout<<Add(1,2);

这样做肯定没问题,但是

cout<<Add(1,2)*3;

有问题,因为define不完全是定义函数,而是替换,所以,会将原式替换成1+2X3=7(怎么算的不用讲了吧),但是照理来说应该是(1+2)X3=9,所以有问题。
函数出了单行,还可以多行定义,但是仅仅是直接替换的过程。

总结:define很好用,让代码简洁,写代码方便,拿#define a b来说,作用是替换a为b,但是如果要计算则在替换后按照基本原则算,方法不变,这也是define一大缺陷。

2022/6/18 15:21
加载中...