전체 글

전체 글

    [홍정모의 따라하며 배우는 C언어] 포인터 변수의 크기

    포인터의 크기는 고정되어있다 왜 이런 결과가 나오는가? 동네가 크던 작던 우편번호 크기는 동일하다 포인터의 크기는 일반적으로 cpu에 따라 결정되며, 32비트 CPU에서는 4바이트 64비트 CPU에서는 8바이트 크기를 가진다. CPU의 1워드의 크기이며, 워드란 CPU가 한번에 처리할 수 있는 데이터의 크기이다. 64바이트의 경우 포인터의 크기는 8이 나오는 것을 확인할 수 있다

    [홍정모의 따라하며 배우는 C언어] 포인터의 작동원리

    * : 변수 앞에 쓰이며, 포인터 변수임을 의미한다. & : 변수에 대입하는 값을 주소값으로 변경할 때 사용한다. *는 간접접근(inderection), 역참조(dereferencing), 방향 재지정(redirection)이라고도 부른다 printf로 *a_ptr을 출력해보면, 주소값이 가르기는 값을 출력해준다

    [홍정모의 따라하며 배우는 C언어] 문자열이 메모리에 저장되는 구조

    문자열의 끝이 어딘지를 표현하기위해 메모리공간을 하나 더 사용한다 문자열 길이는 자동으로 +1이 된다 \0 뒤의 메모리는 무시해준다 printf로 확인해보면, \0 뒤의 문자는 보이지 않는다 \0는 널문자열 이라고 부른다 메모리에 저장될 때 해당 문자열의 끝이 어디인지 모르기때문에 널문자열이 필요한 것이다

    [홍정모의 따라하며 배우는 C언어] C언어 특징

    C언어의 장점 프로그램의 효율성을 높일 수 있다 강력하면서도 유연하다 프로그래머 중심이다 (프로그래머에게 많은 권한/책임을 준다) 다른 시스템으로 이식하기 좋다 (윈도우에서 C언어로 만들었어도 리눅스에서 실행해도 이식하기 좋다) 작은 하드웨어에서 프로그래밍할 때 유용 C언어의 단점 주의를 기울여야 한다 C언어가 쓰이는 곳 Unix 운영체제 게임 임베디드 시스템 자동화 공장 컴파일러와 링커 [컴파일러] 소스코드를 하나의 오브젝트 코드로 변경해준다 [링커] 여러 오브젝트 코드를 하나로 모아준다 라이브러리를 사용할 경우 해당 라이브러리와 연결을 시켜준다 추천 책

    [홍정모의 따라하며 배우는 C언어] 정보의 단위 & 이진수

    데이터와 정보의 차이 정보: 값들 정보: 값들에 처리과정을 거쳐 유용한 형태로 변경 디지털 정보의 기본 단위인 비트 이진수

    [홍정모의 따라하며 배우는 C언어] CPU가 일하는 방법

    프로그램이 실행되면, 보조기억장치에 있던 데이터가 주기억장치로 옮겨진다 주기억장치와 CPU가 통신하여 처리한다 고수준 프로그래밍 언어로 작성하면 CPU를 통해 기계어로 변경한다 CPU 가 일하는 순서 1. 프로그램 카운터가 시작점을 말해준다 2. 메모리 주소 레지스터에 주소값 전달 3. 메모리 데이터 레지스터가 내부 데이터를 읽음 4. 메모리 데이터 레지스터가 읽어온 것이 instruction이기 때문에 명령어 레지스터로 옮겨감 5. 프로그램 카운터가 하나 증가된다. 프로그램 카운터는 항상 다음번에 읽어올 메모리의 주소를 가지고 있어야 하기 때문에 프로그램이 실행되기 전에 하나 증가됨 6. 명령어 레지스터에 있는 명령어가 제어장치로 들어감. 그럼 제어장치가 해독한다 (디코드라고 함) 7. 10번지에 있는..

    [홍성모의 따라하며 배우는 C언어] CPU의 기본 구조

    생각보다 명령어가 없고 단순한 작업들을 조합해서 어마어마한 일을 해낸다 ALU 실제 연산 작업을 하는 곳 (더하기 빼기 등의 계산) 숫자 두개가 모여서 하나로 나온다는 의미로 저런 모양으로 생김 제어장치 관리하는 역할 레지스터 일을 하기위한 책상 역할 작업 공간 기능에 따라 여러가지가 있음 메모리와 가깝게 일한다 CPU안에 레지스터가 들어있으며 저장을 한다 구조를 공부하는 사람 입장에서는 레지스터와 메모리는 같은 저장을 하지만 완전 다르다 흔히 이야기하는 메모리와는 구분하는게 좋다

    [홍정모의 따라하며 배우는 C언어] 메모리 기본구조

    입출력 장치는 운영체제가 쉽게 해주기 때문에 CPU와 Memory위주로 공부 하는 것이 일반적 버스를 통해 2진수 데이터를 주고받는다 1차적으로 메모리에 중요한 내용이 저장되어 있다가 CPU가 연산을 하고 다시 메모리에 전달 메모리에서 CPU로 데이터를 보낼 때 자주 보내는 데이터는 캐시메모리에 저장되어서 가져옴 데이터 접근 방법에는 순차접근, 임의 접근이 있다 순차 접근은 모든 집을 순차적으로 방문하여 사람을 찾는 것과 같고 임의 접근은 찾고자 하는 사람의 주소를 알고있어 바로 찾는 것과 같다 현대 컴퓨터는 주로 후자의 방법으로 데이터를 찾는다 CPU와 메모리(RAM)가 통신하는 방법은 위 그림과 같다 가장 중요한 특징은 address(CPU가 주소를 지정해 알려줌), control(데이터를 보낼건지 ..