https://www.yes24.com/Product/Goods/117080938
C 언어 코딩 도장 - 예스24
프로그래밍은 연습으로 배우는 것이다!가장 깊이 있는 C 언어 입문서C 언어의 난해하고 까다로운 주제도 생략하지 않고 단계별로 차근차근 설명한다. 개념을 생략하고 쉬운 책이 되는 것보단 제
www.yes24.com
공부하고 정리한 내용을 올렸습니다.
(페이지 590쪽)
우리가 사용하는 x86(x86-64) 계열 CPU는 리틀 엔디언이라는 방법으로 값을 메모리에 저장합니다. 간단하게 이야기하면 리틀 엔디언은 숫자를 1바이트씩 쪼개서 낮은 자릿수가 앞에 옵니다. 사람이 보기에는 반대로 뒤집혀 있죠.

#include <stdio.h>
union Data {
char c1; // 1 바이트
short num1; // 2바이트
int num2; // 4바이트
};
int main() {
union Data d1;
// x86(x86-64)계열 cpu는 리틀엔디언이라는 방법으로 값을 메모리에 78 56 34 12 로 저장
d1.num2 = 0x12345678;
printf("0x%x\n", d1.num2); // 0x12345678: 4바이트 전체값 출력
printf("0x%x\n", d1.num1); // 0x5678: 앞의 2바이트 값만 출력
printf("0x%x\n", d1.c1); // 0x78: 앞의 1바이트 값만 출력
printf("%d\n", sizeof(d1)); // 공용체중에서 가장 큰 4바이트 사이즈를 출력
return 0;
}