2012-05-24 7 views
3

저는 메모리가 제한된 x64 시스템에 있으며 많은 양의 데이터를 메모리에 보관해야합니다. 이런 종류의 데이터 구조를 사용할 때의 단점은 무엇입니까?메모리에서 비트 필드를 사용할 때의 단점

struct entity 
{ 
    unsigned int hash : 26; 
    unsigned int timestamp : 14; 
} __attribute__ ((__packed__)); 

나는 비트 필드를 사용하는 것은 권장하지 않습니다 것을 알고 있지만,이 비 정렬 데이터 구조를 사용하여 최악의 단점은 무엇인가.

구조체가 메모리 저장소에서 사용되고 성능이 약간 저하 될 것으로 예상됩니다.

+0

얼마나 많은 데이터가 메모리에 필요합니까? 같은 시간에 기억에 있어야합니까? –

+0

나는 '낙심'이라고 말하지 않을 것입니다. 비트 필드는 언어가 제공하는 도구이며, 설계 제약 조건을 충족시키는 데 가장 좋은 선택이 될 때마다 사용합니다. – Skizz

+0

메모리가 제한된 x64 시스템을 사용하는 경우 x86 코드를 실행하지 않으시겠습니까? 포인터는 모두 절반 크기입니다. – MarkR

답변

8

단점 (비 완전한 목록) :

+0

@Nik : 상위 워드에서의 패킹의 LSB/MSB 정렬은 컴파일러에 따라 다릅니다. –

+0

@BlankXavier와 Oli : 설명 주셔서 감사합니다. –

+0

@BlankXavier : 비트를 다른 방식으로 배열 한 컴파일러로 빌드 된 두 시스템간에 원시 데이터를 전송하는 경우에만 문제가 발생합니다. – Skizz

관련 문제