gcc에서 구조체 pack size 조절하려면?

id7468의 이미지

안녕하세요. gcc를 처음사용하고 있는데요. 구조체의 pack size를 조절하려면 어떻게 해야 하는지 궁금합니다.

struct tagITEM
{
char a;
}
ITEM; // -> sizeof()에서 1바이트가 나옴

struct tagITEM
{
char a;
short b;
}
ITEM; // -> sizeof()에서 6바이트가 나옴

기본 pack size가 얼마인지 그리고 1바이트로 조절하고 싶은데 방법을 알려주시면 대단히 감사하겠습니다.

liongo의 이미지

' 형식이 내용을 규정한다. '

cbycby의 이미지

#include <stdio.h>
                                                                                
int main()
{
    struct A
    {
        char a;
    };
                                                                                
#pragma pack(1)
    struct B
    {
        char a;
        short b;
    };
#pragma pack()
                                                                                
    struct C
    {
        char a;
        short b;
    };
                                                                                
    printf("%d, %d, %d\n", sizeof(A), sizeof(B), sizeof(C));
                                                                                
    return 0;
}

http://www.korone.net QT 커뮤니티 사이트

id7468의 이미지

답변 주신분들 대단히 감사드립니다. 질문을 올려놓고 검색을 해보니 이미 올라온 질문이더군요. 미리 검색부터 해봤어야 하는데.. 죄송^^;

아무튼 즐프 하세요~ :D