這三種定義C 常量的方式孰優孰劣?

時間 2021-05-06 22:33:08

1樓:黃亮anthony

巨集和內聯函式先排除,因為它們雖然可以用做常量,但它們不是常量。

用const沒有問題,但C++11之後,用contexpr才是更好的選擇。const變數都可以簡單的替換到constexpr,部分不能用const的地方也可以用constexpr。

當然,當常量是數字型別時,用enum也是乙個選擇。當常量型別不是整數時,enum和常量的含義並不一樣。scoped enum 充分表達了這種區分。

2樓:悽臨雨

第四種也是我最習慣的列舉啊 enum ; 它不香嗎,這在c++98年代簡直是最佳方案

你這2、3根本不是常量定義。

你能定義「int data[a];」 ?

3樓:漁父

第一種不具備型別安全性,還容易錯(主要是少括號被運算優先順序破壞)。第二種為了明確編譯期常量應該用 constexpr。第三種太不直觀。

最好用constexpr auto a = 1;

非全域性作用域用

constexpr static auto a = 1;

C 三種程式設計方式中既有C語言代表的過程語言又有oop,豈不是互相矛盾?

ll323 過程式和OOP是同乙個流派 imperative 裡的分支要硬說矛盾跨流派的正規化比如過程式 imperative 和functional declarative 還勉強可以說一下在某些地方不好磨合你這都是同乙個流派的東西怎麼就矛盾了呢. Star.E 這豈是互相矛盾,根本就是群魔亂舞。...

如何評價商業地產的這三種運營模式 分割銷售,租售並舉,只租不售?

其實這是商業地產發展的三個階段 1 分割銷售 商業地產發展早期,開發商的融資手段單一,沒有多元的融資的手段就必然需要將物業分割銷售來快速回籠資金,減小自身的資金壓力,以及實現快速的盈利,現在依然有很多中小型的開發商採用這種模式,並且其中有很大一部分是只管開發不管經營管理,所以從根本上講這種模式跟住宅...

失去親情,失去友情,失去愛情,這三種痛的準確感覺該怎麼區分呢?

失去親情,失去友情,失去愛情,這三種痛的準確感覺該怎麼區分?無論什麼情感多半是人類為了尋找一種歸屬感 安全感,或者擺脫孤獨感和危險感而產生的。既然是如此,必然涉及到兩個問題 選擇和連線模式。親情沒有選擇性和可變更性,這就意味不是靠興趣或能力來連線,所以人潛意識是有先天穩定感和年齡等級感的。這就等於兩...