使用#Define和Typedef与数据类型A一起使用



我想知道正在使用

#define ll long long
typedef long long ll;

一个很好的做法,几周前,我在查看了CodeForces的顶级红色代码器的代码后采用了它。

也请解释b/w typedef和#define的差异,因为我到处都在研究或发现这些差异,它们都可以工作。

解释#define和typedef使用和差异?

也很好使用,即使运行时也会减少0.0000001秒,请告诉。

一般而言,使用语言构造而不是处理前处理器构造。宏的问题是每个使用ll的使用,该宏的定义将被替换为:

void f() {
    int ll = 3; // whoops, error
}

使用代码还可以的Typedef。

基本上应该避免#define它未被检查,并且编译器看不到它。

使用Typedef进行基本类型也不是最好的实践。

但是,两者都有其用途,#define在您想在汇编之前做某事时,例如在发布模式下删除调试代码,并且在使用一些较长的STL构造时可以提高可读性。

从根本上讲,#Define的问题与编译器性能无关。

它与难以调试的方式与编程环境有关。

人为的示例:

#include <iostream>
#define while if
int main()
{
    int i = 10;
    while (i) {
        std::cout << i-- << std::endl;
    }
}

这个程序有什么作用?

一个随便阅读该程序的人会希望做什么?

相关内容

最新更新