반응형
출처: http://seungsuk.tistory.com/category/%EC%BB%B4%ED%93%A8%ED%84%B0/C++
struct test
{
struct test
{
int ntest; // 4byte
short nshort; // 2byte
short nshort; // 2byte
};
sizeof(test)로 구조체의 크기를 보면 크기는 8로 나온다.
이유는 기본적으로 윈도우에서 4바이트로 정렬을 했기 때문이다.
#pragma pack(n) n바이트로 데이터를 정렬한다.
#pragma pack() 원래 default 정렬 값으로 지정한다.
#pragma pack(1)
struct test
{
sizeof(test)로 구조체의 크기를 보면 크기는 8로 나온다.
이유는 기본적으로 윈도우에서 4바이트로 정렬을 했기 때문이다.
#pragma pack(n) n바이트로 데이터를 정렬한다.
#pragma pack() 원래 default 정렬 값으로 지정한다.
#pragma pack(1)
struct test
{
int ntest; // 4byte
short nshort; // 2byte
};
#pragma pack()
위와 같이 쓰고
sizeof(test)로 구조체의 크기를 보면 크기는 6으로 나온다.
C#의 [StructLayout(LayoutKind.Sequential,Pack = 1)] 구조체
와
#pragma pack(1) 구조체 #pragma pack()
는
서로 같다고 할 수 있다
네트워크 프로그램의 프로토콜 구조체를 정의 할때 주로 사용한다.
#pragma pack()
위와 같이 쓰고
sizeof(test)로 구조체의 크기를 보면 크기는 6으로 나온다.
C#의 [StructLayout(LayoutKind.Sequential,Pack = 1)] 구조체
와
#pragma pack(1) 구조체 #pragma pack()
는
서로 같다고 할 수 있다
네트워크 프로그램의 프로토콜 구조체를 정의 할때 주로 사용한다.
반응형
'Study > C++' 카테고리의 다른 글
디폴트 매개변수와 함수 오버로딩시 주의점!! (0) | 2011.09.28 |
---|---|
error C2143: syntax error : missing ';' before 'type' 에러 발생시.. (0) | 2011.09.28 |
Function Overloading(함수 오버로딩) (0) | 2011.09.28 |
문자열 관련 함수 Ansi, Unicode, TCHAR (0) | 2011.09.28 |
문자열 검색 함수들.... (0) | 2011.09.28 |
댓글