라벨이 memory인 게시물 표시

Go(golang) 구조체(struct)

이미지
 안녕하세요. 이번에는 golang의 구조체에 대해서 알아보겠습니다.  사진1) 구조체 선언 사진1과 같이 타입을 선언할수 있습니다. 1) 타입 선언 2) 선언할 타입의 이름 3) 구조체 선언 4) 해당 구조체의 원소 타입 선언 package main import ( "fmt" "unsafe" ) // 학생 타입 선언 type Student struct { age int32 // 4 byte name string // 16 byte } // 학점 타입 선언 type Grade struct { student Student score float32 year uint8 } func main (){ // 타입을 이용여 변수 선언 및 age, name 할당 var stu1 Student = Student{ 32 , "alex" , } // 64비트 운영체제의 실제 stu1 구조체(struct)의 크기를 측정할때 20byte가 아닌 24byte로 출력된다. fmt. Println (unsafe. Sizeof (stu1)) // 타입을 이용하여 stu1Grade를 Grade타입으로 선언하고 원소값 할당 var stu1Grade Grade = Grade{ stu1, 100 , 2 , } // stu1에서 name과 age를 각각 출력 fmt. Println ( "stu1출력 :" ,stu1.name, stu1.age) // stu1Grade에서 name과 age를 각각 출력 fmt. Println ( "stu1Grade 출력 :" ,stu1Grade.student.name, stu1Grade.student.age) } 코드1) struct 크기 사진2) struct 메모리 할당 그런데 코드1에서 Student타입의 크기는 24byte로 출력 되었습니다. 이는...