可能重复:
static const vs #define
大家好,在C++中,要定义一个在整个应用程序中使用的常量,你们通常的做法是什么?
#define WINDOWS_HEIGHT 1024
Run Code Online (Sandbox Code Playgroud)
要么
const int WINDOWS_HEIGHT = 1024;
Run Code Online (Sandbox Code Playgroud)
谢谢.
如何使用enum
而不是担心链接?
一切的利弊,取决于用法:
template <typename T> void f(T t) { cout << ++t; }
不会编译)template <typename T> void f(T)
当从不同的枚举中传递相同的数值时,获得一个独特的实例化,所有这些都与任何实际的f(int)实例化不同.#define X "x"
和一些客户端使用ala "pre" X "post"
,如果你想要或者需要使X成为运行时可更改的变量而不是常量,那么你会遇到麻烦,而这种转换更容易从a const char*
或者const std::string
它们已经迫使用户加入连接操作.{ 1, 2 }
可用于初始化数组,或#define MICROSECONDS *1E-6
等等.(绝对不推荐这个!)__FILE__
,__LINE__
可以并入宏观替代作为一般规则,我使用consts并认为它们是一般用法的最专业选项(尽管其他人对这个老懒惰的程序员有一个简单的吸引力).
归档时间: |
|
查看次数: |
354 次 |
最近记录: |