IT_컴퓨터_코딩_개발

Go 언어에서 int는 32비트인가 64비트인가?

파워유저 2024. 1. 19. 11:27

Go 언어에서 int는 32비트인가 64비트인가?

Go 언어는 플랫폼 독립성을 중요시하며, int의 크기는 플랫폼에 따라 다르게 설정됩니다. 이 글에서는 Go 언어에서의 int의 크기에 대해 알아보고, 어떻게 플랫폼 독립성을 유지하는지 살펴보겠습니다.

int의 크기는 플랫폼에 따라 다르다

Go 언어에서 int의 크기는 빌드하는 플랫폼에 따라 결정됩니다. 32비트 아키텍처로 빌드할 때는 int가 32비트이고, 64비트 아키텍처에서 빌드할 때는 64비트입니다. 이는 Go 언어가 서로 다른 아키텍처에서도 동일한 코드로 동작할 수 있도록 하는 플랫폼 독립성의 한 측면입니다.

32bit : GOARCH=386

64bit : GOARCH=amd64

 

 

예제 코드로 확인하기

package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var i32 int32
	var i64 int64
	var i int

	fmt.Println("Size of int32:", unsafe.Sizeof(i32))
	fmt.Println("Size of int64:", unsafe.Sizeof(i64))
	fmt.Println("Size of int  :", unsafe.Sizeof(i))
}

위 예제 코드를 실행하면, 현재 실행 중인 플랫폼에 따라 int의 크기가 32비트 또는 64비트로 출력됩니다.

플랫폼 독립성 유지하기

Go 언어는 int32, int64와 같은 고정 크기의 정수형을 명시적으로 제공하여 플랫폼 독립성을 유지할 수 있도록 합니다. 필요한 경우 특정 크기의 정수를 사용하여 코드를 작성함으로써, 예상치 못한 동작을 방지하고 안정성을 확보할 수 있습니다.

이러한 특징을 통해 Go 언어는 효과적인 플랫폼 독립성을 제공하면서도 쉽게 이식 가능한 코드를 작성할 수 있게 합니다.