TIL 03 :: [CS50] 배열 (1)

Heewon·2021년 6월 13일
0

TIL

목록 보기
3/3
post-thumbnail

1) 컴파일링

  • 컴파일 단계

전처리(Precompile)

#(샾)으로 시작되는 코드, 즉 #include 파일을 가장 먼저 처리해준다.

컴파일(Compile)

고수준언어 -> 저수준언어(컴퓨터가 이해할 수 있는 언어)로 변경
0과 1로 바꿔주는 단계는 아니고 그냥 사람이 봐봤자 알 수 없는 언어로 변경되어 있다..

어셈블(Assemble)

오브젝트 코드로 변환시킨다.
연속된 0과 1로 바꿔주는 작업
컴파일 되어야 하는 파일이 하나라면 여기서 끝

여러 개의 파일로 이루어져 있는 모든 파일들을 하나의 오브젝트 파일로 합쳐준다.
하나의 완성파일을 위해 사용된 파일들을 하나로 모으는 작업이다.

설명 정리가 잘 되어있는 블로그 링크

2) 디버깅

버그와 디버깅

버그 === 코드에 들어있는 오류
디버깅 === 코드의 버그를 식별하고 고치는 과정

디버깅의 기본

컴퓨터는 빠르게 연산작업을 하므로 버그를 찾아 디버깅을 하기 위해서는 그 지점에서 무슨 일이 일어났는지 파악해야한다.
프로그램이 멈추는 특정 지점, 중지점

help50

길고 복잡한 에러 메세지를 간단하고 쉽게 해석해준다.

debug50


이건 CS50의 IDE를 사용한 프로그램이지만 vscode 등에도 디버깅 프로그램이 있다.
브레이크 포인트를 지정하고 컴파일 후 debug50 파일명으로 실행하면 한 줄씩 코드를 실행해보며 오류를 파악할 수 있다.

3) 배열 (1)

메모리


각각의 자료형은 서로 다른 크기의 메모리를 차지한다.
RAM이라는 물리적 칩이 메모리 역할을 한다.

  • bool: 불리언, 1바이트
  • char: 문자, 1바이트
  • int: 정수, 4바이트
  • float: 실수, 4바이트
  • long: (더 큰) 정수, 8바이트
  • double: (더 큰) 실수, 8바이트
  • string: 문자열, ?바이트

배열

    // Scores
    int score1 = 72;
    int score2 = 73;
    int score3 = 33;

이 코드를 배열로

    // Scores
    int scores[3];
    scores[0] = 72;
    scores[1] = 73;
    scores[2] = 33;

바꾸어주면 배열의 원하는 위치에 원하는 값을 저장하거나 불러올 수 있다.

profile
https://habitual-history.tistory.com/ ✨

0개의 댓글