C에서 구조체의 padding 억제
글쓴이: FIFO / 작성시간: 일, 2009/07/26 - 6:08오후
C에서 구조체를 쓰는데... 프로그램이 2개입니다.
그런데 서로 크기가 짝짝이가 되는게 아닌가 싶어서요...
용량도 줄일 겸 padding을 못하게 하고 크기가 딱 맞는걸 보장하게 하고 싶습니다.
그런데 뭘 지정해줘야 그렇게 되는건지 잊어버렸습니다. #pragma 뭘로 지정했던거 같은데...
그리고 같은 머신에서 같은 컴파일러로 빌드하는데 크기 차이가 날 수 있을까요?
어떤 경우에 차이가 나는건지... 알려주시면 감사하겠습니다.
Forums:
자문 자답
http://kldp.org/node/100453
#pragma pack(4)
이거로군요
struct a { ... }
struct a {
...
} __attribute__ ((packed));
해도 됩니다. =.=
감사합니다
음... 저렇게 하면 해당 구조체만 pack시킬 수 있는건가요?
안 그래도 그런걸 찾고 있었습니다;;; 다른 구조체에 영향을 주면 안 되기에...
이건 gcc 확장입니다.
이건 gcc 확장입니다. 편하긴 하지만 다른 컴팔러에선 안됩니다.
그렇군요 T.T
혹시나 기대했는데 역시나...
여하튼 매우 매우 감사합니다.
댓글 달기