C # 배경이 있습니다. 저는 C와 같은 저수준 언어의 초보자입니다.
C #에서 struct
의 메모리는 기본적으로 컴파일러에 의해 배치됩니다. 컴파일러는 데이터 필드를 재정렬하거나 암시 적으로 필드 사이에 추가 비트를 채울 수 있습니다. 따라서 정확한 레이아웃을 위해이 동작을 재정의하기 위해 몇 가지 특수 속성을 지정해야했습니다.
AFAIK, C는 struct
기본적 으로 a의 메모리 레이아웃을 재정렬하거나 정렬하지 않습니다 . 그러나 찾기가 매우 어려운 약간의 예외가 있다고 들었습니다.
C의 메모리 레이아웃 동작은 무엇입니까? 무엇을 재정렬 / 정렬해야합니까?
#pragma pack
하지만 의미론에 대해보다 세밀한 제어를합니다.