gcc에서 구조체 align 조절하는 방법 알려주세요.
글쓴이: simpid / 작성시간: 화, 2003/05/13 - 9:48오전
요즘들어 kldp에 많은 의지를 하고 있는데... 오늘도 역시입니다. ^^;
궁금한건.. 구조체의 align문제 입니다.
Visual C에선..
#pragma pack(push, 1) typedef struct { int a; char b; }test_struct; #pragma pack(pop)
등으로 했는데...
gcc에서 사용할 수 있는 방법은 뭐가 있을까요?
코드상에서 조절할 수 없다면... 컴파일 옵션으로 해야 하나요?
제가 테스트 해보니까.. gcc는 기본적으로 align 4 로 되어 있는것 같군요.
Forums:
구조체 선언시에{sometings;} __attribute__
구조체 선언시에
{
sometings;
} __attribute__((packed)) struct_name;
해주시면 됩니다.
rommance.net
#pragma를 사용하셔도 됩니다.
#pragma pack 이용하여 범위 지정
보통 1byte alignment를 하므로
#pragma pack(1)로 시작해주고 #pragma pack() 으로 끝내면서 기본값으로 반환해준다.
#pragma pack(8)이라고 끝내어도 되겠지만., 시스템이나 아키텍쳐마다 다를 수 있으므로 pack()으로..
#pragma pack(1)
struct a { int i; char j; };
struct b { char a[9]; unsigned short b; };
#pragma pack()
struct c { char a[9]; unsigned short b; };
감사합니다.
항상 답변이 친절하고 빨리 올라와서 좋군요.
^^;
댓글 달기