在毁灭战士3的源代码中,使用了ID_INLINE宏来代替内联,声明为#define ID_INLINE inline
。有什么理由使用这个宏而不是简单的内联?
最佳答案
出于同样的原因,许多其他软件包使用“内联宏”。它有两个目的:
- 它为程序员提供了一个简单的地方来“关闭所有内联”(这有时在调试时非常有用)- 您可以通过执行
#undef ID_INLINE
来“按文件”执行此操作通过#define ID_INLINE
- 或更改整体宏以影响整个项目。 - 一些(旧的)编译器不支持标准的
inline
关键字,或者您可能需要使用特殊的魔法来说服编译器将函数内联。因此,使用“内联宏”可以在整个项目中对其进行更改(至少在程序员遵循编码标准的情况下)。
对于现代编译器,前者无疑是重点。
关于c++ - 为什么在 Doom 源代码中有#define ID_INLINE 内联定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20934281/