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;

이렇게 할당하게 됩니다~^^