#(샾)으로 시작되는 코드, 즉 #include 파일을 가장 먼저 처리해준다.
고수준언어 -> 저수준언어(컴퓨터가 이해할 수 있는 언어)로 변경
0과 1로 바꿔주는 단계는 아니고 그냥 사람이 봐봤자 알 수 없는 언어로 변경되어 있다..
오브젝트 코드로 변환시킨다.
연속된 0과 1로 바꿔주는 작업
컴파일 되어야 하는 파일이 하나라면 여기서 끝
여러 개의 파일로 이루어져 있는 모든 파일들을 하나의 오브젝트 파일로 합쳐준다.
하나의 완성파일을 위해 사용된 파일들을 하나로 모으는 작업이다.
버그 === 코드에 들어있는 오류
디버깅 === 코드의 버그를 식별하고 고치는 과정
컴퓨터는 빠르게 연산작업을 하므로 버그를 찾아 디버깅을 하기 위해서는 그 지점에서 무슨 일이 일어났는지 파악해야한다.
프로그램이 멈추는 특정 지점, 중지점
길고 복잡한 에러 메세지를 간단하고 쉽게 해석해준다.
이건 CS50의 IDE를 사용한 프로그램이지만 vscode 등에도 디버깅 프로그램이 있다.
브레이크 포인트를 지정하고 컴파일 후 debug50 파일명으로 실행하면 한 줄씩 코드를 실행해보며 오류를 파악할 수 있다.
각각의 자료형은 서로 다른 크기의 메모리를 차지한다.
RAM이라는 물리적 칩이 메모리 역할을 한다.
// Scores
int score1 = 72;
int score2 = 73;
int score3 = 33;
이 코드를 배열로
// Scores
int scores[3];
scores[0] = 72;
scores[1] = 73;
scores[2] = 33;
바꾸어주면 배열의 원하는 위치에 원하는 값을 저장하거나 불러올 수 있다.