struct test { char code; double value; short test1; };
위와 같이 있을 때 sizeof(test)하면 1+8+2 = 11이 될 듯 하지만 더 크게 20으로 나오는데 각 구조체 멤버간의 padding 때문으로 알고 있습니다. 이 padding이 몇 바이트가 될지에 대한 공식이 있나요? 아니면 매번 달라지나요?
아키텍쳐에 따라서도 달라지고.. 컴파일러 확장 지시자나 옵션으로도 달라질 수 있고..
특수한 경우가 아니면, 공식보다는 그게 환경에 따라 달라질 수 있다는 걸 가정해서 프로그래밍하시는게 좋을 듯 합니다. offsetof 같은 매크로 활용하시고요.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
아키텍쳐에 따라서도 달라지고.. 컴파일러 확장
아키텍쳐에 따라서도 달라지고.. 컴파일러 확장 지시자나 옵션으로도 달라질 수 있고..
특수한 경우가 아니면, 공식보다는 그게 환경에 따라 달라질 수 있다는 걸 가정해서 프로그래밍하시는게 좋을 듯 합니다. offsetof 같은 매크로 활용하시고요.
댓글 달기