나는 내부적으로 만 배열로 구성하는 클래스, 예를 들어 있습니다단일 배열을 포함하는 struct를 packed로 선언 할 때 단점이 있습니까?
다른 곳class foo {
public:
// methods
private:
int myarray[10];
};
내가 가지고 foo를 포함하는 포장 구조체 (GCC 확장) :
struct __attribute__((__packed__)) bar {
foo x;
};
을하지만, GCC는 '불평 foo '는 압축되지 않으므로 막대가 압축되지 않습니다. 이제 foo를 압축하면 GCC의 오류가 사라집니다. 나는 packed 구조체 내부에있는 것 이외의 다른 문맥에서 foo를 사용하려고합니다. 그래서 지금은 foo, Foo 및 PackedFoo의 두 가지 버전이 있습니다. 그러나, 그들은 단지 배열을 포함하고 AFAIK는 C++에서 'unpacked array'와 같은 것이 없기 때문에, Foo를 가지고 포장 된 속성을주는 것은 나에게 어떤 해가 되는가? 그것은 어떻게 든 포장 된 구조체 외부에서 Foo를 사용할 때 생성되는 GCC 코드를 느리게할까요?
왜'bar' 포장을 중단하지 않으시겠습니까? 그게 가장 간단한 해결책 인 것 같습니다. –
철사 형식을 구문 분석하기 위해 막대를 사용하고 있습니다. –
그러면 포함 된 모든 것을 포장해야합니다! –