반응형
그렇다면 어떻게해야
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)을 통해서 이 전의 바이트패킹으로 되돌릴 수 있다.
반응형
'프로그래밍 > C, C++' 카테고리의 다른 글
[C++] 데이터 자료형 정리 와 WORD, DWORD (0) | 2022.06.14 |
---|---|
파일 입출력.(fseek, ftell, fwrite, fread) (0) | 2017.09.29 |
malloc과 new의 차이. (0) | 2017.09.07 |
2차원 배열 포인터 (0) | 2017.09.07 |
#pragma pack - 1 (0) | 2017.09.07 |