→ sarafciel: 你如果編譯期就保證x=3了 那幹嘛還浪費記憶體去存x 06/12 11:23
→ sarafciel: 直接把程式碼裡看到的x代換成3就好了 06/12 11:24
→ CarbonK: 我會選擇用變數而不是純數字的原因是為了減少 magic numb 06/12 11:59
→ CarbonK: er,增加程式可讀性,也是提醒自己數字的用途 06/12 11:59
→ CarbonK: 至於不用 define 的原因是常數我想放在 function 內提醒 06/12 12:00
→ CarbonK: 自己用途以及作用範圍 06/12 12:00
→ CarbonK: 而且你沒回答到問題欸 06/12 12:12
→ sarafciel: 不 我已經在回答你的問題了 06/12 12:16
→ sarafciel: constexpr是放.data還是stack?都不是 06/12 12:17
→ sarafciel: 因為真正的常數根本不需要放記憶體 編在指令裡就好了 06/12 12:20
推 KaryuuIssen: constexpr要看情況 要保證不產生symbol可用匿名enum 06/12 12:20
→ CarbonK: 你這樣講我就理解你的意思了,看來這部分是由編譯器優化 06/12 14:21
→ CarbonK: 掉了 06/12 14:21
→ CarbonK: 這樣的話我對 static const 跟 .data 好像有些誤解,那麼 06/12 14:22
→ CarbonK: .data 裡面存的不是常數的話會是哪些資料呢? 06/12 14:22
→ CarbonK: @kary(後略) 我的應用場合不太像是要用 enum ,而是定義 06/12 14:24
→ CarbonK: 一些像螢幕長寬、基本速度之類的數值,這些是有可能重複 06/12 14:24
→ CarbonK: 的,所以不能用 enum 06/12 14:24
→ oToToT: 匿名enum也可以有scope吧 06/12 14:53
→ james732: .data是用來儲存有初始化的全域變數吧? 06/12 15:08
推 KaryuuIssen: 回原PO 你所指的常數應該是直接嵌在.text中的數字 06/12 15:20
→ KaryuuIssen: 但constexpr並不保證常數不會生成符號(佔據.rodata 06/12 15:20
→ KaryuuIssen: 空間) 而匿名enum因為規定是純右值 所以一定不會有 06/12 15:20
→ KaryuuIssen: 符號 然後我沒看懂你說會重複而不能用enum的問題 06/12 15:21
→ CarbonK: 了解,這樣我理解兩者的差異了,另外那個重複什麼的問題 06/12 16:19
→ CarbonK: 說理解錯誤,謝謝你的解答 06/12 16:19
→ CarbonK: 更正,是我理解錯誤 06/12 16:20
→ firejox: 可以寫static constexpr阿 06/13 03:11
→ CarbonK: 原來是可以的嗎?謝謝提供答案 06/13 13:13