2011-06-19 70 views
0

可能重複:
Inline functions vs Preprocessor macros內聯函數VS的#define

在C++中的內聯函數限定符基本上取代了用作#define指令,而不是使被調用的函數在並重新開始。從而減少開銷時間,但同時增加程序大小。

如果我對內聯函數的理解是正確的,那麼inline和#define有什麼不同?

回答

2
  • inline只是一個提示,該編譯器就可以忽略

  • #define s爲不是一個編譯器級的功能—他們換人,而不是功能

    • 在爲了安全地將多個語句放入宏,必須將其包裝在do { ... } while(0)中。
    • 每次使用宏時都會重新評估宏的參數。在主叫範圍
    • 名稱是訪問宏
+0

http://codereview.stackexchange.com/q/1679/507 –