32비트 OS에서는 구조체는 4바이트 정렬을 하고, 64비트 OS에서는 8바이트 정렬을 합니다.


네트웍 통신으로 구조체의 데이터를 보낼 때는 구조체의 각 멤버를 하나씩 배열에 인코딩 하던가, 또는 progma pack(1)을 사용하여 1바이트 정렬된 구조체를 보냅니다.


VC++ 프로젝트의 설정을 자세히 보지 않아서 그 동안 구조체 정렬은 progma pack(1)만 사용했는데 VC++의 프로젝트 설정에서도 정할 수 있다는 것을 근래에 알았습니다.


다만 VC++ 프로젝트 설정에서 정하면 모든 구조체에 다 적용 되어버리므로 실제 사용할 일은 없을 것 같습니다.



출처 : 네이버 ‘온라인서버제작자모임’의 규야님으로부터

신고
by 흥배 2010.01.04 08:30
| 1 |

티스토리 툴바