Programming Language/C(2)
-
[C] 리틀엔디안(Little Endian), 빅엔디안(Big Endian)
리틀엔디안(Little Endian)과 빅엔디안(Big Endian)은 컴퓨터 시스템에서 데이터를 저장하고 표현하는 방식을 나타내는 개념이다. 이것은 특히 컴퓨터의 바이트 순서를 의미한다. 리틀엔디안은 가장 낮은 자릿수의 바이트부터 메모리에 저장하는 방식이다. 즉, 가장 작은 단위인 바이트의 최하위 비트부터 차례로 메모리에 저장된다. 예를 들어, 32비트 정수 0x12345678을 리틀엔디안 방식으로 저장하면 메모리에는 0x78, 0x56, 0x34, 0x12와 같은 순서로 저장된다. 이는 바이트의 순서가 역순으로 되어있다고 볼 수 있다. 반면에 빅엔디안은 가장 높은 자릿수의 바이트부터 메모리에 저장하는 방식이다. 즉, 가장 큰 단위인 바이트의 최상위 비트부터 차례로 메모리에 저장된다. 예를 들어, 32..
2023.06.28 -
[C] 메모리 구조
C/C++로 프로그램 작성 후, 실행파일을 만들어 실행시키면 위와 같은 메모리 구조를 갖는다. 메모리 구조는 사용하는 CPU와 운영체제에 따라 다를 수 있다. 그렇지만 기본적으로 위와 같은 구성을 이루고 있다. 각 특성별로 나누어 그룹을 지어 메모리에 배치 하는데, 이것을 링커가 한다. 이렇게 그룹을 나누는 것을 세그먼트(SEGMENT) 또는 섹션(SECTION)이라 한다. 컴파일마다 각 세그먼트 이름과 구조가 다를 수 있다. 스택 스택은 함수 호출과 관련된 지역 변수, 매개 변수, 복귀 주소 등을 저장하는 메모리 영역이다. 스택은 함수 호출과 관련된 데이터를 관리하는 데 사용된다. 스택은 후입선출(LIFO, Last In First Out)의 구조로 동작한다. 즉, 가장 최근에 저장한 데이터가 가장 먼..
2023.06.28