在Doom 3源代码中,使用ID_INLINE宏而不是内联,它被声明为#define ID_INLINE inline
。是什么原因使用这个宏而不是简单的内联?
答案 0 :(得分:3)
出于同样的原因,许多其他软件包使用“内联宏”。它有两个目的:
#undef ID_INLINE
后跟{{1}来“按文件”执行此操作} - 或更改整个宏以影响整个项目。 #define ID_INLINE
关键字,或者您可能需要使用特殊魔术来说服编译器内联函数。因此,使用“内联宏”允许对整个项目进行更改(至少如果程序员遵循编码标准)。 对于现代编译器,前者肯定是重点。
答案 1 :(得分:0)
唯一的原因是有一种方法可以将这个宏重新定义如下,可能是出于调试目的:
#define ID_INLINE