반응형
typedef struct Test
{
char a;
short b;
int c;
}T
T A;
printf("%d", sizeof(A));
어떤 값이 출력 될까?
32bit OS에서 가정하면 char 는 1Byte short 는 2Byte int 는 4Byte로
총 7이 출력될 것 인가?
하지만 출력 값은 8이다.
구조체에서는 메모리의 크기를 4Byte씩 나눠서 저장하게 됩니다.
위의 예제에서 char형과 short형을 합치면 3바이트이므로 4바이트를 맞추기 위해 1바이트가 추가 된다.
즉 (char(1) + short(2) + 1) + int(4) 로 총 8바이트 로 저장됩니다.
이것이 바로 메모리 패딩 입니다.
반응형
'Language > C,C++' 카테고리의 다른 글
텍스트 파일 한줄씩 입력받기. (0) | 2014.05.19 |
---|---|
C에서 예외처리 하기 (0) | 2014.04.08 |
[C언어] 동적할당한 메모리 크기 알기 (0) | 2013.12.28 |
파일 입출력 (0) | 2013.11.08 |
전처리기 (0) | 2012.09.09 |