-
2004-10-07
防止gcc -O3 强制 inline一个函数
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
一个函数,如果代码量比较少的话,用 -O3优化开关的话,gcc有可能将这个函数强制内联(inline)即使,你在函数前没有写inline助记符。
http://ffmpeg.blogbus.com/logs/429585.html
如果是一个手写汇编的函数,那样的话很有可能破坏参数。gcc里有强制不内联的,用法如下
void foo() __attribute__((noinline));
但是有的gcc可能会忽略 noinline。
那么你可以将你实现的这个函数写到调用函数之后,就不会被inline了。这是因为编译器gcc只内联当前函数之前可见(实现代码在前)的函数。
今天刚学到的。
随机文章:
GCC精彩之旅--转帖 2004-10-16对齐,还是对齐 2004-09-22gcc编译步骤控制 2004-09-06oh my god,我改,改,改 2004-11-27嗯,小有成效啊 2004-09-08
收藏到:Del.icio.us







