編譯器如gcc,可以指定不同的優(yōu)化參數(shù),在某些條件下,有些函數(shù)可能會被優(yōu)化掉。
先寫一個簡單的測試文件:

用命令
gcc -g -c test.c
編譯成目標文件。
用 nm檢查函數(shù)符號:
$ 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查找,會發(fā)現(xiàn),此時 foo符號找不到了。
可見,靜態(tài)函數(shù)有可能會被GCC優(yōu)化掉。
-
優(yōu)化
+關注
關注
0文章
220瀏覽量
24616 -
函數(shù)
+關注
關注
3文章
4404瀏覽量
66626 -
編譯器
+關注
關注
1文章
1666瀏覽量
51007
發(fā)布評論請先 登錄
SIMD計算機的優(yōu)化編譯器設計
MCS-51程序空間擴展原理及編譯器優(yōu)化
CodeVsionAVR編譯器常用庫函數(shù)簡介
PICC編譯器的庫函數(shù)詳解
C編譯器及其優(yōu)化
如何使用英特爾編譯器優(yōu)化Fortran、C和C ++
基于C++編譯器的節(jié)點融合優(yōu)化方法
編譯器的優(yōu)化選項

編譯器優(yōu)化對函數(shù)的影響
評論