struct test { char code; double value; short test1; };
위와 같이 있을 때 sizeof(test)하면 1+8+2 = 11이 될 듯 하지만 더 크게 20으로 나오는데 각 구조체 멤버간의 padding 때문으로 알고 있습니다. 이 padding이 몇 바이트가 될지에 대한 공식이 있나요? 아니면 매번 달라지나요?
아키텍쳐에 따라서도 달라지고.. 컴파일러 확장 지시자나 옵션으로도 달라질 수 있고..
특수한 경우가 아니면, 공식보다는 그게 환경에 따라 달라질 수 있다는 걸 가정해서 프로그래밍하시는게 좋을 듯 합니다. offsetof 같은 매크로 활용하시고요.
아키텍쳐에 따라서도 달라지고.. 컴파일러 확장
아키텍쳐에 따라서도 달라지고.. 컴파일러 확장 지시자나 옵션으로도 달라질 수 있고..
특수한 경우가 아니면, 공식보다는 그게 환경에 따라 달라질 수 있다는 걸 가정해서 프로그래밍하시는게 좋을 듯 합니다. offsetof 같은 매크로 활용하시고요.