小编典典

静态常量与#define

all

static const使用vars 比使用#define预处理器更好吗?或者可能取决于上下文?

每种方法的优点/缺点是什么?


阅读 100

收藏
2022-05-25

共1个答案

小编典典

就个人而言,我讨厌预处理器,所以我总是选择const.

a
的主要优点#define是它不需要内存来存储在您的程序中,因为它实际上只是用文字值替换一些文本。它还具有没有类型的优点,因此它可以用于任何整数值而不会产生警告。

” ” 的优点const是它们可以限定范围,并且可以在需要传递指向对象的指针的情况下使用。

不过,我不知道您对“ static”部分的确切了解。如果您要全局声明,我会将其放在匿名命名空间中,而不是使用static. 例如

namespace {
   unsigned const seconds_per_minute = 60;
};

int main (int argc; char *argv[]) {
...
}
2022-05-25