[부스트코스 CS50] 2.C언어 - C기초 (강의 정리)

username_oy·2023년 6월 15일

CS50

목록 보기
3/3

1. C언어

C는 아주 오래되고 전통적인 순수 텍스트 기반의 언어이다.
앞서 배운 스크래치 블록과 결과적으로 정확히 일치한다고 볼 수 있다.

왼쪽에 Filetree, 오른쪽 상단의 코드 작성 부분, 하단의 터미널창 이렇게 3가지 화면으로 구성되어있다.

터미널 창에서 보이는 달러($)는 프롬프트(prompt)로
컴퓨터가 입력을 받아들일 준비가 되었다라는 것을 나타내 주기 위해 컴퓨터 단말기 화면에 나타나는 신호다.
프롬프트는 프로그램마다 사용되는 것이 다르다.

코드를 작성하기 위해선 작성 부분 상단의 (+)버튼을 눌러 새로운 파일을 만들어준다.
이 때는 제목 뒤에 .c라는 확장자를 반드시 붙여줘야 한다.
이는 'C언어로 작성된 코드'라는 것을 뜻하기 때문이다.

✔️ 스크래치와 C언어

그래픽 기반으로 블록을 사용하여 코딩을 하는 스크래치와 달리 C언어는 순수 텍스트를 기반으로 하는 언어다.


int main(void)는 스크래치의 when 🚩clicked 블록과 같은 역할을 합니다.
즉 '시작한다'의 의미다.

C언어에서 스크래치의 say와 비슷한 함수는 printf()다.

  • printf는 문자열을 출력하는 함수다.
  • printf라는 함수를 사용하기 위해선 #include<stdio.h>라는 코드를 작성해서 미리 작성된 함수에 접근할 수 있도록 해야한다.
  • int main(void)는 프로그램의 시작점을 의미한다.
  • C언어에서 글자, 단어, 문장을 적을 때에는 명령어와 구분하기 위해 꼭 ("")로 감싸줘야 한다.
  • 문장이 끝날 때 마침표를 찍는 것 처럼, 하나의 명령이 끝났을 때에는 세미콜론(;)을 붙여줘야 한다.

✔️ 소스코드와 머신코드

위에서 직접 작성한 코드는 '소스 코드(source code)'이고, 소스코드는 컴퓨터가 이해하지 못한다.
그러므로 컴퓨터가 이해할 수 있도록 이진수로 작성된 '머신 코드(machine code)'로 변환을 해야한다.
이 변환 작업은 '컴파일러(compiler)'로 실행된다.

즉, 소스코드는 C, 파이썬, 자바, C++와 같은 영어와 유사한 코드들이며 머신코드는 컴퓨터가 실제로 이해하는 0과 1의 조합이다.
참고로 머신코드는 '오브젝트 코드(Object code)'라고도 한다.

C언어에서는 clang이라는 명령어를 통해 코드를 컴파일 할 수 있다. 터미널에 clang hello.c를 입력 후 엔터를 치면, 머신코드로 번역하여 같은 폴더 내에 a.out이라는 이름의 파일을 생성한다.

머신코드로 컴파일된 a.out를 실행하면 비로소 원하는 결과물을 얻을 수 있다.

추가로 clang 명령어에서는 출력과 관련된 인자로 -o 를 사용할 수 있으며, 컴파일 되는 파일명을 지정할 수 있다.

profile
프런트엔드 개발자로의 여정

0개의 댓글