※ 引述《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