2014-03-27 75 views

回答

5

随着用const int的唯一途径?

const int size = 50; 

虽然这与#define有不同的含义,并且更安全。 #define只是做一个预处理剪切和粘贴,同时定义一个常量来维护类型检查。你不能在#define会做的所有事情中使用它,但它可以用于一般常量和静态数组的长度。

C++ 11个引入constexpr

constexpr int size = 50; 

constexpr膨胀常数的能力,还包括更多的编译时计算。

5

使用#define确定为“旧skool”,并且有许多缺点。更好使用const,例如

const size_t SIZE = 50; 

请注意,这同样适用于C++,C和Objective-C。

+0

尽管文字'50'的类型是'int',所以为了保留这个,'SIZE'应该是'int'而不是'size_t'。虽然我同意一个名为'SIZE'的东西可能不会被用作'int' –

+0

@Ryan:是的,我正在读取行之间,并假定一个名为'SIZE'的常量很可能会被使用为了内存分配或类似的目的,但这可能是一个不好的假设。 –