浅谈#define与typedef

  1. #definetypedef究竟有什么用?
    看下面的代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    //code
}

这段代码的用处是,在之后的代码中,如果有ll则会自动替换成long long
#define的用法刚好调换了位置:

#include<bits/stdc++.h>
using namespace std;
#define ll long long;
int main(){
    //code
}

这段代码与上一段的作用基本相同。
总之,#definetypedef是为了让我们的编程过程中更方便。比如,如果一道题目中需要打很多遍long long,我们加上一行代码,之后就可以用ll代替了。
温馨提示:这两段代码在一些重要考试的时候尽量不用,有些时候会爆 0 !!!
2.#definetypedef有什么区别?
typedef是关键字,对已经存在的数据类型取别名。
在编译阶段处理,会进行类型检查,只能在定义的作用域内使用。
define是预处理指令(宏定义),只进行简单的字符替换,是否产生错误要在编译时才可知。
没有作用域限制,可以对类型/变量/常量等进行替换。
因此,相对来说,#define只是单纯的字符替换。而对于程序的运行来说,这实际上是一个大大的缺点。而typedef则更加安全。

总结

#definetypedef的功能大同小异,都是进行代码中的字符转换,但在程序运行方面来说,本人更推荐使用typedef

部分内容参考自此博客
2 个赞

#define int long
signed main(){}

c++中用不太到你说的long long#define

谁告诉你的?

自己心血来潮总结的。。。

笑点解析:在1月4日我就在初赛模拟中考到了这个