0
在Doom 3源代碼中,使用了ID_INLINE宏而不是內聯,它被聲明爲#define ID_INLINE inline
。有什麼理由使用這個宏而不是簡單的內聯?爲什麼在Doom源代碼中有#define ID_INLINE內聯定義?
在Doom 3源代碼中,使用了ID_INLINE宏而不是內聯,它被聲明爲#define ID_INLINE inline
。有什麼理由使用這個宏而不是簡單的內聯?爲什麼在Doom源代碼中有#define ID_INLINE內聯定義?
出於同樣的原因,許多其他軟件包使用「內聯宏」。它有兩個目的:
#undef ID_INLINE
其次,你能做到「每個文件」 #define ID_INLINE
- 或更改整體宏以影響整個項目。inline
關鍵字,或者您可能需要使用特殊的魔術來說服編譯器內聯函數。因此,使用「內聯宏」可以在整個項目中對其進行更改(至少如果程序員遵循編碼標準)。隨着現代編譯器,前者肯定是主要觀點。
它的唯一原因是有辦法重新定義該宏爲以下,可能對調試用途:
#define ID_INLINE
因爲這樣你可以取消內聯的所有改變的一行代碼的功能? –
@OliCharlesworth您的評論似乎對我的問題非常好。 –