精華區beta Programming 關於我們 聯絡資訊
※ 引述《tomhuang (阿培仔)》之銘言: > typedef unsigned short u16; > const u16 IN_WIDTH = 320; > const u16 IN_HEIGHT = 24; > const u16 BLEED_WIDTH = 30; > const u16 BLEED_HEIGHT = 20; > const u16 OUT_WIDTH = (IN_WIDTH - BLEED_WIDTH * 2); > const u16 OUT_HEIGHT = (IN_HEIGHT - BLEED_HEIGHT * 2); > 最後兩個有錯誤訊息: > error: initializer element is not constant > 可是把那幾行拷到 function 裡面,好像就沒有錯誤訊息... > 是不是 global 和 local 的寫法不一樣呢? 再順便問一下,最後兩個會有錯,是不是因為它是一個計算式呢? 如果 const int 後面是個不需計算的數字,看之前回文似乎以 -O 最佳化後 它會變成和 #define 一樣的效果,那最後兩個需計算的值呢? 是存在記憶體中,還是變成立即值加到組語指令後面? 如果需計算的值,全部仍是由 const int 組成,那最佳化後, compiler 一樣會在 compile time 先算出它們的值嗎? -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: 218-161-72-204.dynamic.hinet.net