개인 공부/C언어 공부

C언어 코딩도장 : 51.7 패킷 크기 조절하기

240 • 사공이 2020. 8. 21. 23:22

문제 : 다음 소스 코드를 완성하여 3이 출력되게 만드세요. 구조체 멤버의 이름은 마음대로 지어도 됩니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
struct Packet {
    char a;
    char b;
    char c;
};
 
int main()
{
    struct Packet pkt;
 
    printf("%d\n"sizeof(pkt));
 
    return 0;
}
cs

구조체 정렬 크기를 조절하지 않는 경우 - char형 변수 3개 선언

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
#pragma pack(push, 1)
struct Packet {
    char a;
    short b;
};
#pragma pack(pop);
 
int main()
{
    struct Packet pkt;
 
    printf("%d\n"sizeof(pkt));
 
    return 0;
}
cs

구조체 정렬 크기를 조절하는 경우(#pragma pack(push, 1), #pragma pack(pop) 활용) - char 1개, short 1개 선언