Xcode에서 구조체 정렬을 1 바이트 패킹으로 설정해야하고 "#pragma pack (1)"플러그 메그를 추가해도 아무런 효과가없는 것 같습니다. 다른 방법이 있습니까? 레거시 데이터를 읽어야하므로 손으로 포장 할 수 없습니다. 감사합니다,Xcode에서 구조체 정렬을 설정하는 방법
빌은 GCC 특정 지침 사용해야합니다
Xcode에서 구조체 정렬을 1 바이트 패킹으로 설정해야하고 "#pragma pack (1)"플러그 메그를 추가해도 아무런 효과가없는 것 같습니다. 다른 방법이 있습니까? 레거시 데이터를 읽어야하므로 손으로 포장 할 수 없습니다. 감사합니다,Xcode에서 구조체 정렬을 설정하는 방법
빌은 GCC 특정 지침 사용해야합니다
엑스 코드는 GCC를 사용 : 예를 들어 http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Type-Attributes.html
:
struct S { char f[3]; } __attribute__ ((aligned (1)));
이 구조체는 따라서 최소 정렬됩니다 1 바이트.
패딩을 추가하지 말 것을 지정하는 packed 속성도 있습니다. 컴파일러에 의존 이상 http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html
gcc도이 MSVC 스타일 pragma를 지원하지 않습니까? http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html –
고마워.하지만 크기에는 아무런 영향을 미치지 않는 것 같습니다. BTW : Xcode의 버전 4를 사용하고 있는데 차이가 나는 경우 3에서 4 사이의 컴파일러가 변경됩니다. – Bill
@BillFerster 현재까지는 llvm 프런트 엔드가 있더라도 여전히 gcc가 사용됩니다. . 스티븐 추 : 그 점에 대해 확신하지 못했습니다. 링크를 이용해 주셔서 감사합니다. – Geoffroy
적절한 직렬화/역 직렬화 루틴은 항상 올바른 옵션은 다음과 같습니다
편집
내가 언급하는 것을 잊지하지만 @Stephen 추를 했나요로, MSVC 스타일 pragma는 또한 GCC가 지원하는 포장 및 엔디안. –
명령의 문제로 보이지 않으므로 (제 편집 참조) 관련 코드를 표시 할 수 있습니까? 아마도 더 많은 것이 관련되어있을 것입니다. 또는 이것은 아마도 당신이하려는 일에 대한 기본 행동입니다. – Geoffroy