static const使用vars 比使用#define预处理器更好吗?或者可能取决于上下文?
static const
#define
每种方法的优点/缺点是什么?
就个人而言,我讨厌预处理器,所以我总是选择const.
const
a 的主要优点#define是它不需要内存来存储在您的程序中,因为它实际上只是用文字值替换一些文本。它还具有没有类型的优点,因此它可以用于任何整数值而不会产生警告。
” ” 的优点const是它们可以限定范围,并且可以在需要传递指向对象的指针的情况下使用。
不过,我不知道您对“ static”部分的确切了解。如果您要全局声明,我会将其放在匿名命名空间中,而不是使用static. 例如
static
namespace { unsigned const seconds_per_minute = 60; }; int main (int argc; char *argv[]) { ... }