언어/C++

#Pragma pack

에린_1 2024. 4. 13. 20:36
728x90

#Pragma pack

  • 네트워크 통신을 할때 패킷의 사이즈를 정확하게 지정하고 통신할 수 있게 하는것
  • 네트워크 헤더 구조체의 경우 필수적으로 사용한다.
  • 구조체의 크기가 커지는 것을 막을 수 있다.
#pragma pack(push, n)
#pragma pack(pop)
  • 전처리기 이며, n은 정렬크기를 넣어주면 된다.
  • n의 값은 1,2, 4, 8, 16만 유효하며, 디폴트 값은 기본 타입중 가장 큰 타입인 8이다.
#pragma pack(push, 1)
  • 위의 경우 1byte씩 정렬한다고 선언한 것이다.
#pragma pack(pop)
  • 특정 구조체에 대해서만 구조체의 정렬 크기를 지정해주고자 한다면 #pragma pack(pop)을 사용한다

 

참조

https://she11.tistory.com/109

 

[C, C++] #pragma pack의 개념과 사용방법

#pragma pack의 사용이유와 사용방법에 대해서 알아볼 것이다. 먼저 일반적인 구조체 선언 코드를 보자. #include typedef struct test{ char a;// 1byte int b;// 4byte }test; 이때 구조체 변수 a는 char형이므로 1byte일

she11.tistory.com

 

728x90