#include <stdio.h>
#if(1)
#pragma pack(1)
struct PacketHeader {
char flags; // 1 BYTE
int seq; // 4 BYTE
};
#pragma pack()
#endif
#if(0)
struct PacketHeader {
char flags; // 1 BYTE
int seq; // 4 BYTE
} __attribute__((aligned(1), packed));
#endif
#if(0)
struct PacketHeader {
char flags; // 1 BYTE
int seq; // 4 BYTE
};
#endif
int main()
{
struct PacketHeader header;
printf("%d\n", sizeof(header.flags));
printf("%d\n", sizeof(header.seq));
printf("%d\n", sizeof(header));
return 0;
}
//정상적인 경우는 1+4=8바이트의 크기로 구조체크기가 결정되지만
//#pragma pack(1)를 사용함으로써 구조체 정렬 크기조정할수 있다.
'c 언어 > 중급과정' 카테고리의 다른 글
LINUX, struct tm *localtime_r(const time_t *timep, struct tm *result); (0) | 2019.10.31 |
---|---|
시작날짜와 종료날짜사이의 날짜개수 구하기(전문용어:잔존일수 구하기) (0) | 2019.10.31 |
LINUX, char *strtok_r(char *str, const char *delim, char **saveptr); (0) | 2019.10.31 |
WINSOWS, WIN, HEXA프로그램(공통) (0) | 2019.10.31 |
WINDOWS, WIN, HEXA프로그램(헤더) (0) | 2019.10.31 |