0
Q
什麼是內聯函數?
A
回答
1
內聯函數以與函數相同的方式評估它的參數(或者至少您可以這樣想)。這可以防止發生典型的宏觀錯誤。另一方面,通過聲明函數是內聯的,你可以提示編譯器避免函數調用,只需將代碼中的指令插入代碼中(就像宏一樣)。
簡而言之,它比宏更安全,但僅僅是編譯器的一個提示。編譯器不會被迫避免函數調用(至少如果我正確地記得它)。
順便說,例如, 「典型的宏錯誤」 的:
#define SQUARE(a) (a*a)
int x = 10;
int square = SQUARE(++x); // this turns out to be 11 * 12, instead of 11 * 11
內聯函數會進行11 * 11來代替。
+1
其實這裏的結果是未定義的。 – 2010-09-25 18:34:20
相關問題
- 1. 模板函數+函子參數,爲什麼函子不內聯?
- 2. 什麼是方法內聯?
- 3. 什麼是內聯腳本?
- 4. 什麼是「內聯線程」?
- 5. 這是爲什麼內聯?
- 6. 在這種情況下,內聯函數的宏是什麼?
- 7. 內聯函數的確切用法是什麼?
- 8. 什麼時候應該使用宏而不是內聯函數?
- 9. 爲什麼不是所有函數都內聯?
- 10. 什麼是從匿名函數返回值的內聯語法?
- 11. 虛函數內聯函數會發生什麼情況?
- 12. 這是什麼,以及什麼vimscript函數與它相關聯?
- 13. 的標準是什麼是內聯
- 14. 爲什麼內聯函數不能查看內部作用域?
- 15. 內聯函數
- 16. 內聯函數
- 17. 內聯函數
- 18. 爲什麼gcc沒有爲這個函數決定內聯或者不內聯?
- 19. 什麼是關聯數組
- 20. 什麼是關聯數組?
- 21. 聯動的內聯函數
- 22. 內聯會話它們是什麼?
- 23. Callgrind內聯函數
- 24. 內聯const函數
- 25. SQL內聯函數
- 26. 從內聯函數
- 27. C++內聯函數
- 28. 什麼是打印內建函數的函數指針
- 29. 來自不同類的內聯類函數,都是內聯的?
- 30. 有什麼方法可以內聯遞歸函數嗎?
在C++中有很多關於內聯的問題,只要看看帶標記問題的列表即可。 http://stackoverflow.com/questions/tagged/inline%20c%2b%2b – 2010-09-25 09:07:01