編譯器如gcc,可以指定不同的優(yōu)化參數(shù),在某些條件下,有些函數(shù)可能會(huì)被優(yōu)化掉。
先寫一個(gè)簡(jiǎn)單的測(cè)試文件:
用命令
gcc -g -c test.c
編譯成目標(biāo)文件。
用 nm檢查函數(shù)符號(hào):
$ nm -C test.o
00000000 T foo
現(xiàn)在使用 命令
gcc -g -c -O2 test.c
重新編譯。
再用 nm檢查:
$ nm -C test.o
00000000 T foo
還是能找到函數(shù) foo.
這表明foo沒有被優(yōu)化掉
現(xiàn)在把函數(shù) foo改成靜態(tài)函數(shù):
使用 -O2編譯,然后用 nm查找,會(huì)發(fā)現(xiàn),此時(shí) foo符號(hào)找不到了。
可見,靜態(tài)函數(shù)有可能會(huì)被GCC優(yōu)化掉。
-
優(yōu)化
+關(guān)注
關(guān)注
0文章
220瀏覽量
24279 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4376瀏覽量
64530 -
編譯器
+關(guān)注
關(guān)注
1文章
1659瀏覽量
50046
發(fā)布評(píng)論請(qǐng)先 登錄
SIMD計(jì)算機(jī)的優(yōu)化編譯器設(shè)計(jì)
MCS-51程序空間擴(kuò)展原理及編譯器優(yōu)化
編譯器_keil的優(yōu)化選項(xiàng)問題
CodeVsionAVR編譯器常用庫(kù)函數(shù)簡(jiǎn)介
PICC編譯器的庫(kù)函數(shù)詳解
C編譯器及其優(yōu)化
如何使用英特爾編譯器優(yōu)化Fortran、C和C ++
關(guān)于volatile關(guān)鍵字對(duì)編譯器優(yōu)化的影響
基于C++編譯器的節(jié)點(diǎn)融合優(yōu)化方法
編譯器的優(yōu)化選項(xiàng)

評(píng)論