就我个人而言,我讨厌预处理器,所以我总是 Select const
.
#define
的主要优点是它不需要存储在程序中的内存,因为它实际上只是用一个文本值替换一些文本.它还有一个优点,即它没有类型,因此可以用于任何整数值,而无需生成警告.
"const
"的优点是它们可以限定作用域,并且可以在需要传递指向对象的指针的情况下使用.
不过,我不知道你说的"static
"到底是什么意思.如果是全局声明,我会将其放在匿名名称空间中,而不是使用static
.例如
namespace {
unsigned const seconds_per_minute = 60;
};
int main (int argc; char *argv[]) {
...
}