Q
內聯變量的語義
0
A
回答
1
正常情況下,必須爲函數和變量(爲它們分配空間,變量空間或函數體代碼)定義一次函數和變量。內聯函數放寬了這一點,以允許多個定義(因爲定義通過包含文件被拉入到多個模塊中),所有這些都必須相同。如果該函數是實際引用的,而不是內聯複製,則通過丟棄除一個副本以外的所有副本並使該副本成爲二進制中的正式副本來合併多個定義。
行內變量對於例如:靜態類成員。您不必創建一個只有內容爲單個成員變量定義的類的主體源文件,而是可以在類頭文件中定義靜態成員變量並生成多個定義(每個模塊包含一個類頭)將被合併到二進制文件中的單個實例中,而不會導致編譯器或鏈接器錯誤。
4
不,不能保證調用內聯函數實際上會導致函數被內聯。例如,如果內聯函數遞歸調用自身,那麼它可能不會被內聯。同樣,通過函數指針變量的調用通常不能被內聯。
如果一個內聯函數具有外部連接,然後連接,如果內聯函數在多個翻譯單位定義期間,鏈接器選擇含有定義的轉換單元中的一個,並解析所有剩餘的引用(即 ODR - 不是由編譯器內聯的),將該函數添加到所選翻譯單元中的定義中,放棄其餘定義。內聯變量的工作方式相同。
相關問題
- 1. Ext.XTemplate中的內聯變量
- 2. ASP.NET UpdatePanel - 內聯變量
- 3. 內聯空變量pHP
- 4. SQL內聯變量賦值
- 5. 內聯bash腳本變量
- 6. BASH:定義變量內的變量?
- 7. 內聯術語定義的公約?
- 8. 從內聯函數內更新變量
- 9. 定義變量中的C++內聯彙編
- 10. 變量未定義,儘管內部被定義if語句
- 11. 內聯更新語句替換字符串與變量
- 12. Excel VBA內聯IF語句使變量0
- 13. gcc的內聯彙編輸入變量
- 14. PHP的mailto:變量與faicon內聯
- 15. R中內聯的變量擴展
- 16. 變量有內在聯繫,但沒有定義
- 17. 如何爲內聯變量模板創建自定義點?
- 18. Java內存模型中本地最終變量的語義?
- 19. php if語句內/單個變量內?
- 20. 開關語句中的變量定義
- 21. 語義UI:重寫site.variables中的變量
- 22. Python中**星號變量**的語義
- 23. DB ASM變量內聯彙編C++
- 24. AVR內聯彙編:註冊到變量?
- 25. 取消引用使變量內聯
- 26. 將mysql值賦值給內聯變量
- 27. 內聯bash時間變量擴展
- 28. Powershell concat字符串和變量內聯?
- 29. python靈活,內聯變量賦值
- 30. 在線獲得內聯js變量