2014-09-09 1 views

답변

6

당신은 32 비트 또는 64 비트 OS가 무엇을 의미합니까? 예를 들어, GOOS=nacl에 사용되는 GOARCH=amd64p32amd64 32 비트 포인터 및 32 비트 유형 intuint과 함께 64 비트 명령어입니다.

package main 

import (
    "fmt" 
    "runtime" 
    "strconv" 
) 

func main() { 
    const PtrSize = 32 << uintptr(^uintptr(0)>>63) 
    fmt.Println(runtime.GOOS, runtime.GOARCH) 
    fmt.Println(strconv.IntSize, PtrSize) 
} 

놀이터 : http://play.golang.org/p/TKnCA0gqsI

출력 :

nacl amd64p32 
32 32 

linux amd64 
64 64 
+0

난 그냥 IntSize, PtrSize을 알고 싶은 –

+0

@DanielYCLin : 당신이 단지의 int 포인터의 크기를 원하는 경우, 당신이 사용할 수있는'unsafe.Sizeof' – JimB

+0

안전하지 않은 적절한 없습니다. 나는 strconv가 더 좋다고 생각한다. –

-1

당신은 unsafe 패키지를 사용하고 32 비트 (4를 포인터의 크기를 계산할 수 8 64 비트 용). 다음 동작하는 예제 : http://play.golang.org/p/MPap9KMD1y

+0

GOARCH = amd64p32의 경우 올바르지 않습니다. – JimB

관련 문제