2014-03-27 39 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'的常量很可能會被使用爲了內存分配或類似的目的,但這可能是一個不好的假設。 –