编译器优化对函数的影响

电子说

1.2w人已加入

描述

编译器如gcc,可以指定不同的优化参数,在某些条件下,有些函数可能会被优化掉。

先写一个简单的测试文件:

优化

用命令

gcc -g -c test.c

编译成目标文件。

用 nm检查函数符号:

$ nm -C test.o

00000000 T foo

现在使用 命令

gcc -g -c -O2 test.c

重新编译。

再用 nm检查:

$ nm -C test.o

00000000 T foo

还是能找到函数 foo.

这表明foo没有被优化掉

现在把函数 foo改成静态函数:

优化

使用 -O2编译,然后用 nm查找,会发现,此时 foo符号找不到了。

可见,静态函数有可能会被GCC优化掉。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分