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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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)有了一個(gè)指向 *uint 形式的 uint 的指針。這將使 uintptr 變得多余。官方文檔并沒(méi)有對(duì)此給出太多說(shuō)明:uintptr is an integer type that is large enough to hold the bit pattern of any pointer.據(jù)我了解,這意味著 uint 的位寬是在編譯時(shí)根據(jù)目標(biāo)體系結(jié)構(gòu)(通常是 32 位或 64 位)確定的。指針寬度也應(yīng)該縮放到目標(biāo)體系結(jié)構(gòu)似乎是合乎邏輯的(即:32 位 *uint 指向 32 位 uint)。Golang 也是這樣嗎?另一個(gè)想法是,也許添加 uintptr 是為了使在進(jìn)行多重間接尋址時(shí)語(yǔ)法不那么混亂(即:foo *uinptrvs foo **uint)?我最后的想法是,也許指針和整數(shù)在 Golang 中是不兼容的數(shù)據(jù)類型。這將是相當(dāng)令人沮喪的,因?yàn)橛布旧聿⒉粎^(qū)分它們。例如,“分支到此地址”指令可以使用來(lái)自剛剛在“添加此值”指令中使用的同一寄存器的相同數(shù)據(jù)。uintptr 的真正意義是什么(雙關(guān)語(yǔ))?
查看完整描述

3 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

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



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

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊

簡(jiǎn)短的回答是“從不使用uintptr”。??

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

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

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


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

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊

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



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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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