프로그래밍/C, C++
#pragma pack -2
ShyK
2017. 9. 7. 10:32
반응형
그렇다면 어떻게해야
struct S
{
char c;
double d;
int i;
};
구조체 패킹을 없앨 수 있을까????
#pragma pack(push,1)
struct S
{
char c;
double d;
int i;
};
#pragma pack(pop)
이렇게하면 된다 !
#pragma pack(push,1)를 통해서
스택에 1Byte로 정렬하게된다.
그래서
1 + 8 + 4 = 13byte가 나오게 되는것이다.!
다른 byte로 정렬하고 싶으면
1 대신에 2,4,8을 넣어주면 된다.
#pragma pack(pop)를 쓴 이유는
"내가 여기까지 구조체(클래스)의 바이트 패킹을 몇 바이트로 했는데 이제 이 전의 바이트패킹으로 되돌릴거야"
라는 것과 마찬가지 이다.
그래서 #pragma pack(pop)을 통해서 이 전의 바이트패킹으로 되돌릴 수 있다.
반응형