使用#Define和Typedef与数据类型A一起使用
Is using #define and typedef with data type a good practice?
我想知道正在使用
#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;
}
}
这个程序有什么作用?
一个随便阅读该程序的人会希望做什么?
相关文章:
- 防止主数据类型C++的隐式转换
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在C++中打印指向不同基元数据类型的指针的内存地址
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 如何计算数据类型的范围,例如int
- C++中数据类型修饰符的顺序
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 特定数据类型的模板类
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- 有没有办法提示用户使用哪种数据类型作为模板 c++
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 将运算符<<与隐式转换的非基本数据类型一起使用时出错
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 将分配的内存与基本数据类型一起使用时,是否需要新放置? std::complex?
- 如何将模运算符与其他数据类型一起使用
- 将 PIMPL 习惯用法与成员函数模板一起使用(无需预先了解所有可能的数据类型)
- 使用#Define和Typedef与数据类型A一起使用
- 定义char数据类型,并与sprintf一起使用
- 数据类型如何与C#中的C#一起使用c 和数据类型
- C++指针给出数据类型为"int"的错误,但与"char"一起工作正常