c 소스에서 구조체 정의 부분 문법 설명 좀 부탁합니다

익명 사용자의 이미지

리눅스에 net/ethernet.h에 있는 부분인데
__attribute__ ((__packed__)) 이 부분은 무엇을 뜻하는거죠 매크로 상수
같은데 감이 잘 안잡히는 군요.

struct ether_header
{
u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */
u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */
u_int16_t ether_type; /* packet type ID field */
} __attribute__ ((__packed__));

익명 사용자의 이미지

PACKED 관련 부분을 찾아볼것.

익명 사용자의 이미지


저는 처음에 제가 모르는 구조체의 문법인 줄 알았는데
__attribute__((__packed__)) 이게 알고보니 메모리 패딩과 반대되는 패킹
을 사용할때 쓰는 것이었군요.