C - 구조체 크기 알아보기
2022. 3. 15. 20:31ㆍC
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#define _CRT_SECURE_NO_WARINGS
struct PacketHeader {
char flags;
int seq;
};
int main(void) {
struct PacketHeader header;
printf("%d\n", sizeof(header.flags));
printf("%d\n", sizeof(header.seq));
printf("%d\n", sizeof(header));
printf("%d\n", sizeof(struct PacketHeader));
return 0;
}
출력 결과
1
4
8
8
먼저 header.flags는 char형이라서 1
header.seq는 int형이라서 4
header는 8인 이유가 int형 기준으로 4바이트를 2번 할당 받아서 char형 1 빈공간 3 int형 4로 8이다
이때 빈 공간을 패딩이라고 칭한다.
구조체 PacketHeader의 크기도 마찬가지로 8
'C' 카테고리의 다른 글
C - 자료구조 기초2 (0) | 2022.03.21 |
---|---|
C - 자료구조 기초 (0) | 2022.03.21 |
C - 구조체 심화 (0) | 2022.03.14 |
C - 동적 메모리 할당 (0) | 2022.03.11 |
C - 함수 포인터 (0) | 2022.03.11 |