메모리의 데이터에 대한 모든 액세스는 다음과 같은 범주로 분류할 수 있습니다.
예를 들어 0x1000에서 워드 경계의 기본 정렬. ARM 컴파일러는
일반적으로 LDR 및 STR 명령어를 사용하여
이러한 항목이 효율적으로 액세스되도록 변수와 패드 구조체를 정렬합니다.
알려진 그러나 기본이 아닌 정렬, 예를 들어 주소 0x1001에 있는 워드. 이러한 유형의
정렬은 일반적으로 불필요한 패딩을 제거하기 위해 구조체가 패킹될 때 발생합니다. C 및 C++에서 __packed 한정자는
구조체가 패킹되었다는 것을 나타내기 위해 사용됩니다.
알 수 있는 정렬, 예를 들어 임의 주소에 있는 워드. 이러한 유형의 정렬은 일반적으로
임의의 주소에 있는 워드를 가리킬 수 있는 포인터를 정의할 때 발생합니다. C 및 C++에서 __packed 한정자는
기본 정렬 경계에 있지 않는 워드에 액세스할 수 있는 포인터를 나타내기 위해 사용됩니다.
__packed 한정자, 패킹된 구조체 및 정렬되지 않은 포인터에 대한
자세한 내용은 __packed 한정자 및 데이터에 대한 정렬되지 않은 액세스를 참조하십시오.