[질문] gcc 옵션에 대해

익명 사용자의 이미지


안녕하세요 ? gcc, g++ 컴파일 옵션을 알고 싶슴다.
스트럭쳐의 기본 사이즈를 1 byte 단위로 하고 싶거든요 ?

무슨옵션을 붙여야 하는건가요 ????

기본적으로 컴파일해서 스트렉쳐를 sizeof해서 읽으면 4바이트라고
나오거든요

typedef struct aa {
char aa;
};

printf("%d", sizeof(aa));

이렇게 하면 4바이트로 나오는데, 1바이트로 나올수 있게 할수 없나요 ?

익명 사용자의 이미지

1. gcc 에 --pack-struct 를 쓰는 방법

2. 소스에 __attribute__((packed)) 를 쓰는 방법

struct A {
char a;
short b;
} __attribute__((packed));
3바이트

하지만, 구조체를 강제로 pack 시키는 건 실행 효율에 좋은
영향을 주지 못합니다. (나쁜 영향을 줍니다.)