2009-05-18 3 views
3

Visual C++에서는 프로젝트의 속성 페이지에서 구조체 멤버 인 alignemnt를 선택합니다. 문제는이 구성이 프로젝트의 모든 srtruct에 사용되고 있다는 것입니다.Visual C++ 2008의 구조체 정렬

특정 구조체의 멤버 정렬을 개별적으로 설정하는 방법은 무엇입니까 (VC++ 특정, 추측)? 당신은 정렬이 사용자의 요구에 맞을 때까지

그래서, 다양한 필드 사이에 몇 가지 더미 바이트를 추가 패딩 바이트 바이올린 수 있습니다 정말 특정 구조의 정렬에 대한

답변

6
+0

매우 편리합니다. 이 표준 또는 MS가 고유합니까? –

+0

아니요, gcc에는 http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html – KIV

+0

이 있습니다. #pragma는 구현 정의로 정의되어 있으므로 표준이 아닙니다. 그러나 GCC도이를 지원합니다 : http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html – Joey

0

.

예 :

{ 짧은 부호 X 구조체의 예; 바이트 dummy1; 바이트 dummy2; 바이트 dummy3; 바이트 dummy4; 바이트 dummy5; 바이트 dummy6; 부호없는 int y; }; 더미 바이트가 배치되지 않았을 경우

경고의 (가 오프셋 (8)에 배치 된 지금 반면, 구조체의 시작 부분에서 4 바이트)

의 INT는 아마 오프셋 4 곳이었을 것입니다 : 매우 컴파일러 특정 및 나쁜 코드 연습;)