C언어 포인터 1
C

C언어 포인터 1

by nocagklhw 2019. 12. 23.

포인터를 알기 전에 운영체제에 대하여

포인터를 배우기 전에 중요한 기본적 내용에서는 많은 사람들은 변수를 배웠을 것이다.
변수를 이용하여 메모리에 저장된 것을 불러오거나 저장하거나 읽을 수 있다.
사람에게는 변수를 쓰는 것이 편리하지만 기계어는 사람이 변수를 쓰더라도 메모리 주소가 변수보다 더 중요하다. 메모리 주소가 있어야만 변수를 쓸 수 있는 것이니 말이다. 그래서 컴파일이 될 때 변수에서 메모리 주소로 컴파일이 된다.

변수 ---(컴파일)---> 메모리 주소

64비트, 32비트

64비트는 현재 사람들이 많이 64비트로 변경하고 있는 추세인 것 같고, 많은 사람들이 64비트를 사용 중이다.
둘 중 무엇이 성능이 좋냐라는 질문은 당연히 64비트로 답변이 가능하지만 그리 무거운 프로그램을 쓰지 않는 사람에게는 64비트는 너무 과분하고 불필요하다. 64비트는 불필요하게 메모리를 잡아 먹기 때문이다. 32비트는 그렇지 않다. 그러나 무거운 프로그램을 64비트로 돌려야 하는 이유는 32비트에서는 최대 동시 메모리 사용량이 4GB이기 때문이다. 64비트에서는 그 용량을 초과해서 쓸 수 있다. 물론 64비트 운영체제에 따라 메모리 한도가 천차만별이긴하다.

메모리 주소 지정 방식. 컴퓨터는 메모리 주소를 1바이트로 관리한다.

그림을 그려보자면 이렇다.
메모리를 사용하려면 당연히 컴퓨터가 알아들을 수 있도록 메모리 주소를 지정해주어야 한다.
그냥 1바이트, 2바이트가 아닌, 100번지에 1바이트 저장해~ 이런 식으로 말이다.

직접 주소 지정 방식

이것은 프로그래머가 메모리를 사용할 때 메모리 주소를 직접 적는 방식을 말한다.
프로그래머가 '111번지에 1042라는 값을 2바이트로 저장해주세요'라고 명령을 컴퓨터에게 내린다.

 

 


숫자를 적을 때 큰 숫자부터 적는 게 일반적이라서 4가 앞에 오는 것이라 생각될 수 있지만 18이 111번지에 저장이 되는 이유는 윈도우 운영체제는 우리가 생각하는 것과 반대 방향으로 숫자가 저장되는 리틀 엔디언 정렬을 이용해서 그렇다.

 

댓글


TOP

TEL. 02.1234.5678 / 경기 성남시 분당구 판교역로