如何在C語言中實現後期binding?如何在C語言中實現後期綁定?
回答
延遲綁定實際上並不是C語言本身的功能,更多是執行環境爲您提供的功能。
許多系統將提供延期作爲連接器/加載器的功能結合,你也可以使用顯式調用諸如dlopen
(打開共享庫)和dlsym
(到庫中,以便您在得到一個符號的地址可以訪問它或稱之爲)。
用C標準獲得後期綁定的唯一半便攜方式是使用system()
的一些技巧,甚至至少部分是針對特定實現的。
如果你不是在談論延遲綁定而是多態,你可以用函數指針來實現這種效果。基本上,您創建了一個struct
,其中包含一個類型的所有數據以及用於查找該類型方法的函數指針。然後,在「構造函數」(通常是init()函數)中,將函數指針設置爲該類型的相關函數。
即使你不使用它,你仍然需要包含所有的代碼,但它可能是是這種方式可能獲得多態性。
C中的符號綁定總是在編譯時完成的,而不是運行時。
圖書館綁定,或稱爲動態鏈接,是通過Windows上的dlopen()
和dlsym()
和Windows上的LoadLibrary()
和完成的。
使用Objective-C或Lua。兩者都是後期綁定,可以方便地與C.
當然,你可以實現自己的名稱解析方案的界面語言,但爲什麼要重新發明輪子?
不幸的是,你沒有指定一個操作系統。對於Unix,您可以使用共享庫,或創建一個可配置(插件)模塊結構。有關詳細信息,您可能會發現apache 1.3 webserver的源代碼很有用。 http://httpd.apache.org/download.cgi
cppdev似乎是唯一擊中與他/她的話的地方。 請看看the definition itself。在幾句:
後期綁定,或動態綁定,是一種計算機編程機制 ,其中在一個物體在運行時查找通過名稱 被調用的方法。
所有其他答案只是錯過了主要觀點,即「按名稱查找」。
所需的解決方案將非常類似於函數指針查找表以及一個或兩個函數按名稱(或甚至通過簽名)選擇正確的函數。我們稱之爲「哈希表」。
- 1. 如何實現C#random.nextDouble C語言
- 2. 如何將語言綁定到C庫
- 3. 如何使用C語言實現CRC
- 4. 如何在C語言中實現「連續調用」語法糖?
- 5. Md5在C語言中的實現POS
- 6. 在C++編程語言中綁定語言
- 7. C#後期綁定
- 8. C#中的後期綁定#
- 9. 在C++中實現一個事件並定期驅動「腳本語言」?
- 10. c語言:在實現使用結構
- 11. 如何實現中去編程語言
- 12. C#實現本地代碼的後期綁定
- 13. 多態如何在C++等語言的低層實現?
- 14. 語言在Apache Solr實現
- 15. Osek實現語言
- 16. 面嚮對象語言的動態綁定實現
- 17. WPF - 實現多語言應用程序 - 綁定問題
- 18. C#Excel 2007後期綁定
- 19. COM +後期綁定C#4.0
- 20. 爲窗口綁定C語言
- 21. 使用C語言實現Web服務
- 22. 如何製作語言綁定?
- 23. 如何實現多語言網站laravel
- 24. 如何以LISP語言實現堆棧
- 25. 如何實現多語言支持ERM
- 26. 如何實現一種功能語言
- 27. 如何在C++中使用windows DLL(後期綁定)方法?
- 28. 如何在C#中使用自動後期綁定?
- 29. 語言「綁定」如何與現有庫進行通信?
- 30. 如何用同一種語言實現一種語言比語言更快?
如何使用函數指針數組。然後我們可以根據用戶輸入從數組中選擇函數指針 – cppdev 2010-01-18 11:34:47