구조체가 원래 계산해보면 6byte를 차지하는게 맞는데
sizeof로 사이즈 출력해보면 8byte를 먹음
이게 속도나 효율성을 위해서 6byte딱 끌어오는게 아니라
여유를 가지고 혹시모를 상황을 위해 더 가져온다는데
그러면 무조건 2배수로만 가져오는거임?
ex)
구조체가 12byte를 실질적으로 차지한다면 메모리에서 16byte를 할당하고 4byte는 padding byte로 들어가는거임?
아니면 그 사이에 난 모르는 규칙이 있는거임?
구조체가 원래 계산해보면 6byte를 차지하는게 맞는데
sizeof로 사이즈 출력해보면 8byte를 먹음
이게 속도나 효율성을 위해서 6byte딱 끌어오는게 아니라
여유를 가지고 혹시모를 상황을 위해 더 가져온다는데
그러면 무조건 2배수로만 가져오는거임?
ex)
구조체가 12byte를 실질적으로 차지한다면 메모리에서 16byte를 할당하고 4byte는 padding byte로 들어가는거임?
아니면 그 사이에 난 모르는 규칙이 있는거임?
cpu 워드 하위호환이랑 관련있음
data alignment 검색 ㄱㄱ
구조체 메모리는 어차피 동적할당으로 받는거고 그건 구조체의 맴버에 따라 다른건데 의미가 있을까?
아..
4바이트씩 끊어서 할당하는거임
ㄳㄳ.. 더 찾아볼게요
물 600ml을 담으려고 하는데, 컵이 400ml짜리 밖에 없으면 컵 두개(800ml)를 가져와서 600ml를 채워야 하는거랑 비슨한거
혹시모를 상황 때문은 아니고 메모리 블럭 사이즈 단위로 감
고마워요오
구조체가 12바이트 차지하면 12바이트만 먹음. 13바이트 차지하면 16바이트 먹고.
물론 alignment를 임의로 조절할 수도 있다
방법은 컴파일러마다 다르고 명확한 이유가 있는거 아니면 안건드리는게 나음