我正在为几个编译器构建一个 C 项目,其中一些是旧版编译器,它们似乎没有链接时间内联支持,因此将static inline
函数直接放在头文件中并且实际上让每个翻译单元都有自己的副本似乎是合乎逻辑的。
另外,我需要确保某些函数是内联的,以便在某些低级中断处理程序中调用时不会调用其他函数(即更改 CPU 寄存器),所以这不仅仅是让编译器选择它是否会影响性能.
但是,我的一位同事告诉我,这是一件不寻常的事情,我应该避免这样做。在项目的这一点上,我可能仍然可以重新安排所有内容,所以我想确认如果我们决定使用标题内联,从长远来看,我们是否会面临一些问题?