我在工作中遇到了一个 Linux C++ 程序设计问题。
函数 f() 在两个地方被调用。它已被声明为内联。
第一处, f() 被调用 10000 次,我们需要手动内联(将 f() 主体复制到它的调用者)以减少调用它的开销。结果已经证实了这些好处。
在位置二,f() 只被调用一次,目的与位置一不同。
为了进一步的工作,我可能会在 f() 中进行一些更改,如果我们手动进行内联,则需要在 f() 主体中进行相同的更改,以便在位置 1 和 2 中的 f() 始终完全相同。
以这种方式很难在地点 1 和地点 2 之间进行同步。
我们不想使用宏,因为我们需要使用 gdb 进行调试。
__attribute__ ((always_inline))
我们的系统不支持。