作者james732 (好人超)
看板C_and_CPP
標題Re: [問題] 用變數宣告陣列
時間Sat Nov 28 22:08:26 2009
剛剛嘗試了一下,發現兩種方式產生的組合語言長度相差甚多
使用平台:ubuntu 9.04 x86 32bit
編譯器 :gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
編譯指令:gcc test.c -std=c99 -S
int main()
{
int arr[30];
return 0;
}
組合語言檔:
http://james545.myweb.hinet.net/test.s (共 21 行)
與
int main()
{
int i = 30;
int arr[i];
return 0;
}
組合語言檔:
http://james545.myweb.hinet.net/2test.s (共 93 行)
不過我看不太懂為什麼後者會多出那麼多的指令數量...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.184.214
→ dendrobium:最佳化呢? 11/28 22:38
→ devilarise:不懂組合語, 不過第二個估計是把容器寫進去幫忙管理了 11/28 22:45
推 sunneo:大概是alloca變成inline了吧 11/28 23:20
→ weiyucsie:我猜是額外的堆疊配置動作... 11/29 00:54