그래픽 인터페이스인 스크래치(skratch)를 사용해서도 간단한 프로그래밍이 가능하지만, 텍스트 기반 프로그래밍 언어인 C를 사용해도 컴퓨터에게 동일한 일을 시킬 수 있습니다.
C 언어란?
벨 연구소의 데니스 리치가 만든 프로그래밍 언어로 정식 명칭은 'C'지만 한국에서는 'C언어'라고 부른다.
세계적으로 가장 많이 쓰이는 프로그래밍 언어 중 하나이다.(출처 : 나무위키)
우선 저번 시간에 했던 스크래치와 비교해볼 텐데 혹시라도 저번에 스크래치를 사용해보지 않으셨다면
바로 이전 게시글 가서 한 번이라도 써 보시는 것을 추천드립니다. ㅎㅎ
우선 C언어의 기본 코드를 보자면
#include <stdio.h>
int main(void){
prinf("hello, world");
}
이런 형식으로 표현됩니다. 이는 스크래치 블록으로 표시한다면
이런 모양으로 표시할 수 있습니다. (두 개의 결과는 같습니다.)
하나하나 설명해보자면
가장 먼저
#include <stdio.h>는 "stdio.h"라는 이름의 파일을 찾아서 "printf" 함수에 접근할 수 있도록 해주는 역할을 합니다.
int main(void) -> "초록색 깃발을 클릭했을 때 (when ( ) clicked)" 와 같은 역할이고
시작한다. 라는 의미를 가지고 있습니다.
기본적인 프로그래밍 공부를 해보신 분들은 아시겠지만 앞으로 작성할 코드(행동 등)는 int main(void)의 { } 사이에 작성될 것입니다.
printf("hello, world"); -> say hello, world와 같은 역할을 하고
hello, world라고 말하기(출력하기)라는 의미를 가지고 있습니다.
위에서 알 수 있듯 글자나 단어, 문장을 적을 때는 언제나 텍스트에 " "(쌍따옴표)로 감싸야하고, 우리가 일상에서 문장의 끝에 .(마침표)를 찍는 것처럼 C에서는 ;(세미콜론)을 붙여줘야 합니다.
마지막으로 C로 작성한 코드는 "파일 이름.c"로 저장해야 합니다.
이렇게 작성된 코드를 소스코드라고 부릅니다.
그런데 이 소스코드들을 그대로 사용하면 컴퓨터가 이해를 할 수 없는데 컴퓨터는 0과 1만을 사용해서 말하기 때문입니다. 그래서 이 작성된 소스코드를 머신 코드로 변경해야 하는데 이때 필요한 작업이 컴파일러를 이용한 컴파일이라는 작업입니다.
그럼 컴파일을 어떻게 해야 할까요?
터미널 창의 명령어 프롬프트의 "$" 기호 옆에 원하는 명령어를 입력하면 됩니다.
여기에 이제
clang hello.c
라는 명령어를 사용할 건데 이건 "clang"이라는 컴파일러로 "hello.c"라는 파일을 컴파일하라는 의미를 가집니다.
그 결과로 a.out이라는 파일이 생성되는데(여기서 만들어지는 a.out은 default로 파일명을 지정해주지 않으면 자동으로 주어지는 이름입니다. 원하는 이름이 있으면 clang -o xxx hello.c => 이런식으로 xxx부분에 작성해주시면 됩니다.) 터미널에서 ./a.out이라는 명령어를 실행하면 컴퓨터가 현재 디렉토리에 있는 a.out이라는 프로그램을 실행시켜줍니다. (./a.out에서 .은 지금 현재 폴더를 나타냅니다.)
출처
본 내용은 CS50의 2019년 강의를 듣고 작성했습니다. (개념이 어느 정도 정리되면 최신강의도 다시 듣고 수정할 내용 있으면 수정하겠습니다.)
강의 자료는 EdX에서 무료로 사용할 수 있고 boostcourse에서 한글 강의로도 들을 수 있습니다.
'CS 기초 > C언어' 카테고리의 다른 글
[CS50] 하드웨어의 한계 (0) | 2021.08.03 |
---|---|
[CS50] 사용자 정의 함수, 중첩 루프 (0) | 2021.08.02 |
[CS50] 자료형, 형식 지정자, 연산자 (2) | 2021.08.01 |
[CS50] 조건문과 루프 (0) | 2021.07.30 |
[CS50] 문자열 (0) | 2021.07.29 |