Computer Language/C
구조체의 패딩에 대해서...
rajent
2007. 3. 26. 17:01
728x90
struct
{
char a;
int b;
char c;
double d;
char e;
} A;
printf("%d", sizeof(A));
자 다음 프로그램의 결과는 어떻게 될까요??
char형 세개에 int형 하나, double형 하나면 15바이트가 되겠죠??
하지만 visual c++컴파일러에서는 데이타블록을 4byte로 할당합니다.
즉 위 구조체는
struct
{
char a; //4Byte
int b; //4Byte
char c; //8Byte <- double형에 대해 데이터 블록을 맞추기 위해 8Byte로 할당됩니다.
double d; //8Byte
char e; //8byte;
} A;
이렇게 할당하게 됩니다~^^
{
char a;
int b;
char c;
double d;
char e;
} A;
printf("%d", sizeof(A));
자 다음 프로그램의 결과는 어떻게 될까요??
char형 세개에 int형 하나, double형 하나면 15바이트가 되겠죠??
하지만 visual c++컴파일러에서는 데이타블록을 4byte로 할당합니다.
즉 위 구조체는
struct
{
char a; //4Byte
int b; //4Byte
char c; //8Byte <- double형에 대해 데이터 블록을 맞추기 위해 8Byte로 할당됩니다.
double d; //8Byte
char e; //8byte;
} A;
이렇게 할당하게 됩니다~^^