【发布时间】:2021-06-29 19:46:44
【问题描述】:
我正在查看一些已编译代码的程序集,在搜索特定函数时,我发现了两个共享相同名称的函数:
000000000042da10 <my_function..0>:
000000000042dc50 <my_function..1>:
在 C 代码中该函数只有一个声明。我注意到这两个函数在汇编代码中的不同位置被调用,参数略有不同。
这是一个非 gcc 编译器,但我不确定是哪个(我刚刚被告知这不是用 gcc 编译的)。我知道它是用最大优化 (-O3) 编译的,所以我很好奇这是否是编译器针对整数常量参数进行优化并创建函数两次,每次调用一次。
一个程序中存在两个相同功能的原因是什么?
【问题讨论】:
标签: c compilation compiler-optimization