为了账号安全,请及时绑定邮箱和手机立即绑定

int什么时候会是64位?

int什么时候会是64位?

Go
繁星点点滴滴 2023-07-10 14:19:54
根据文档:int 是有符号整数类型,大小至少为 32 位。然而,它是一种独特的类型,而不是 int32 等类型的别名。但它没有说哪个平台或什么时候它会大于 int32。谁能给我更多详细信息吗?或者说处理它的源代码在哪里?我可以强制编译器将 int 转换为 64 位吗?我知道我可以使用 int64。这不是一个寻求最佳实践的问题。
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

Go 编程语言规范

数字类型

还有一组具有特定于实现的大小的预先声明的数字类型:

uint     either 32 or 64 bits
int      same size as uint

的大小int取决于编译器编写者。对于主机来说,它通常是一个自然、有效的大小。例如,amd64 上为 64 位,386 架构上为 32 位。


例如,


package main


import (

    "fmt"

    "runtime"

    "strconv"

)


func main() {

    fmt.Println(runtime.GOARCH, strconv.IntSize)

}

输出:


$ uname -p

x86_64

$ go run intsize.go

amd64 64

查看完整回答
反对 回复 2023-07-10
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

据推测, an 的大小int是由实现定义的,这意味着它会根据操作系统和内核架构的不同而因平台而异。大多数编程语言(例如 C)都是这种情况。

如果您必须精确地拥有一个 64 位整数,那么该int64类型就存在,这将保证您的整数中恰好有 64 位。与 、 等相同int32int16否则,文档建议使用int,因为编译器可以更轻松地优化代码。


查看完整回答
反对 回复 2023-07-10
  • 2 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信