首頁 > 後端開發 > C++ > 為什麼 C/C 中函數和資料指標不總是相容?

為什麼 C/C 中函數和資料指標不總是相容?

DDD
發布: 2024-12-05 02:12:13
原創
425 人瀏覽過

Why Aren't Function and Data Pointers Always Compatible in C/C  ?

為什麼在C/C 中函數和資料指標不相容

雖然資料指標和函數指標之間的轉換在大多數平台上通常是成功的,不保證相容性。這就提出了一個問題:考慮到兩者都指向記憶體位址,相容性不應該是簡單的嗎?

解釋在於運算系統所採用的架構。 C/C 不會將自身限制於特定的體系結構,並且允許靈活地管理記憶體。一些架構(例如哈佛架構)為程式碼和資料維護單獨的記憶體空間。相較之下,馮諾依曼架構將程式碼和資料儲存在同一記憶體中。

對於馮諾依曼架構,程式碼和資料駐留在同一空間中,函數指標和資料指標之間的轉換可能是可能的。然而,實際的兼容性不能被認為是理所當然的。在區分兩個記憶體空間的系統中,例如哈佛架構,轉換將會失敗。

以上是為什麼 C/C 中函數和資料指標不總是相容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板