我不知道怎么办。
它不使用 []byte(uintptr(0))
进行编译。
请给我举个例子。
最佳答案
这取决于您机器的架构(32 位或 64 位)以及您希望如何对其进行编码(小端或大端)。无论哪种方式,encoding/binary
是你的答案:
var u uintptr = 42
size := unsafe.Sizeof(u)
b := make([]byte, size)
switch size {
case 4:
binary.LittleEndian.PutUint32(b, uint32(u))
case 8:
binary.LittleEndian.PutUint64(b, uint64(u))
default:
panic(fmt.Sprintf("unknown uintptr size: %v", size))
}
Playground :http://play.golang.org/p/tIocqy-rAJ .
关于go - 如何在 golang 中将 uintptr 转换为 []byte?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32223562/