第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 中的 *uint 和 uintptr 有什么區(qū)別?

Golang 中的 *uint 和 uintptr 有什么區(qū)別?

Go
元芳怎么了 2023-08-07 14:51:16
我們提供了以下整數(shù)類型:int? int8? int16? int32? int64uint uint8 uint16 uint32 uint64 uintptr理論上,這意味著我們還可以擁有指向所有這些類型的指針,如下所示:*int? *int8? *int16? *int32? *int64*uint *uint8 *uint16 *uint32 *uint64 *uintptr如果是這種情況,那么我們已經(jīng)有了一個指向 *uint 形式的 uint 的指針。這將使 uintptr 變得多余。官方文檔并沒有對此給出太多說明:uintptr is an integer type that is large enough to hold the bit pattern of any pointer.據(jù)我了解,這意味著 uint 的位寬是在編譯時根據(jù)目標體系結(jié)構(gòu)(通常是 32 位或 64 位)確定的。指針寬度也應(yīng)該縮放到目標體系結(jié)構(gòu)似乎是合乎邏輯的(即:32 位 *uint 指向 32 位 uint)。Golang 也是這樣嗎?另一個想法是,也許添加 uintptr 是為了使在進行多重間接尋址時語法不那么混亂(即:foo *uinptrvs foo **uint)?我最后的想法是,也許指針和整數(shù)在 Golang 中是不兼容的數(shù)據(jù)類型。這將是相當(dāng)令人沮喪的,因為硬件本身并不區(qū)分它們。例如,“分支到此地址”指令可以使用來自剛剛在“添加此值”指令中使用的同一寄存器的相同數(shù)據(jù)。uintptr 的真正意義是什么(雙關(guān)語)?
查看完整描述

3 回答

?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

您正在混淆 uintptr 和 *uint。uintptr 在處理指針時使用,它是一種足夠大以容納指針的數(shù)據(jù)類型。它主要用于不安全的內(nèi)存訪問,查看unsafe包。*uint 是指向無符號整數(shù)的指針。



查看完整回答
反對 回復(fù) 2023-08-07
?
素胚勾勒不出你

TA貢獻1827條經(jīng)驗 獲得超9個贊

簡短的回答是“從不使用uintptr”。??

長的答案是,uintptr是否可以繞過類型系統(tǒng)并允許 Go 實現(xiàn)者在 Go 中編寫 Go 運行時庫(包括垃圾收集系統(tǒng)),并調(diào)用 C 可調(diào)用代碼,包括使用不被處理的 C 指針的系統(tǒng)調(diào)用。去吧。

如果您作為實施者(例如,提供對新操作系統(tǒng)上的系統(tǒng)調(diào)用的訪問),您將需要uintptr.?您還需要了解使用它所需的所有特殊魔法,例如,如果操作系統(tǒng)要對操作系統(tǒng)級線程執(zhí)行堆棧式操作,則將 goroutine 鎖定到操作系統(tǒng)級線程。(如果您將其與 Go 指針一起使用,您可能還需要告訴編譯器不要移動您的 goroutine 堆棧,這是通過特殊的編譯時指令完成的。)

運行時系統(tǒng)將 anunsafe.Pointer視為對對象的引用,這使對象在 GC 中保持活動狀態(tài)。它認為 auintptr是這樣的參考。(也就是說,雖然unsafe.Pointer有指針類型,但uintptr有整數(shù)類型。)


查看完整回答
反對 回復(fù) 2023-08-07
?
尚方寶劍之說

TA貢獻1788條經(jīng)驗 獲得超4個贊

uintptr 只是內(nèi)存地址的整數(shù)表示形式,無論它指向的實際類型是什么。有點像void *C 語言,或者只是將指針轉(zhuǎn)換為整數(shù)。它的目的是用于不安全的黑魔法,并且不會在日常的 go 代碼中使用。



查看完整回答
反對 回復(fù) 2023-08-07
  • 3 回答
  • 0 關(guān)注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號