巨集和 C++
C++ 提供的新功能,其中取代了一些由 ANSI C 前置處理器提供的功能。 這些新功能可強化此語言的類型安全及可預測性:
在 C++ 中,宣告為 const 的物件可在常數運算式中使用。 這可讓程式宣告具有類型和值資訊的常數,以及可以由偵錯工具以符號形式檢視的列舉。 使用前置處理器 #define 指示詞來定義常數會不夠精確。 除非在程式中找到取得其位址的運算式,否則不會為 const 物件配置儲存區。
C++ 內嵌函式功能取代了函式類型的巨集。 在巨集中使用內嵌函式的優點包括:
類型安全。 內嵌函式的類型檢查限制與一般函式相同。 巨集不是安全的類型。
修正具有副作用的引數處理。 在進入函式主體之前,內嵌函式會將所提供的運算式當做引數進行評估。 因此,沒有機會讓具有副作用的運算式不安全。
如需內嵌函式的詳細資訊,請參閱 inline、__inline、__forceinline。
為了提供回溯相容性,Microsoft C++ 會保留存在於 ANSI C 和舊版 C++ 規格中的所有前置處理器功能。