gpt4 book ai didi

go - 什么时候 int 是 64 位的?

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:52 31 4
gpt4 key购买 nike

根据doc :

int is a signed integer type that is at least 32 bits in size. It is a distinct type, however, and not an alias for, say, int32.

但它没有说哪个平台或什么时候会比 int32 更大。

谁能给我更多详细信息?或者处理它的源代码在哪里?我可以强制编译器生成 64 位 int 吗?

我知道我可以使用 int64。这不是要求最佳实践的问题。

最佳答案

The Go Programming Language Specification

Numeric types

There is also a set of predeclared numeric types with implementation-specific sizes:

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
$

Playground :https://play.golang.org/p/wyNm2Hyzl6W

输出:

amd64p32 32

The Go Blog: Inside the Go Playground


Go 从 C 继承了这个。

The C Programming Language, 2nd Edition, Brian W. Kernighan and Dennis Ritchie

int an integer, typically reflecting the natural size of integers on the host machine

关于go - 什么时候 int 是 64 位的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57275858/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com