-
[C언어] C 기초Stage/Computer Science 2021. 5. 26. 19:21
학습목표
C로 "hello, world"를 출력하는 프로그램을 만들 수 있다.
1. C언어
아주 오래되고 전통적인 순수 텍스트 기반의 언어이다.
앞에서 접한 스크래치는 형형색색의 블록을 끌어다 쓰면 됐기 때문에 사용자 친화적이었다.
스크래치로 만들었던 코드 블록들을 순수 텍스트 기반으로도 옮길 수 있는데, C언어를 사용해서 표현해보자.#include <stdio.h> int main(void) { printf("hello, world"); }
- int main(void): 시작한다는 의미이다. 스크래치에서 '초록색 깃발을 클릭했을 때' 블록과 같은 역할을 한다.
- printf: 스크래치에서 'say'와 같은 함수. ("hello, world" 라고 말하기)
- 문장이 끝날 때는 세미콜론(;)을 붙여야 한다. 문장이 끝났음을 알려주는 의미이다.
2. 출력하기
2.1. 소스코드와 머신코드
위에서 작성한 코드는 '소스 코드' 라고 불린다. 이 input을 출력하려면 어떻게 해야 할까?
input -> ____ > output
우리가 작성한 소스 코드는 컴퓨터가 이해할 수 없는 언어로 만들어졌다.
컴퓨터가 이를 이해하기 위해서는 소스코드를 0과 1로 작성해야 한다. 컴퓨터는 2진법을 사용하기 때문이다.
컴퓨터가 이해할 수 있는 코드를 머신 코드라고 부른다.source code -> ____ -> machine code
2.2 컴파일러
source code -> compiler -> machine code
소스코드를 머신코드로 변환하는 작업을 뜻한다.
터미널 창에서 우리가 원하는 명령어를 입력하면 컴퓨터가 수행해준다.
'$' 기호 옆에 명령어를 입력해보자.1) 명령어 입력
- "clang" 이라는 컴파일러로 "hello.c" 코드를 컴파일하라는 의미이다.
- 아무일도 일어나지 않은 것 같아 보이지만, 폴더를 확인해보면 a.out 이라는 파일이 생성되어있다.
- a.out 파일은 소스코드를 머신코드로 컴파일한 파일이다. 우리가 작성한 코드가 0과 1로 가득차있다.
2) a.out 파일 실행
- ./a.out
- . = 지금 말그대로 현재 폴더(right here.)
컴퓨터에서 마우스로 더블클릭해서 실행 하는 것과 같은 것 - /a.out = 이 디렉토리에서 a.out이라는 파일을 실행하라
우리가 작성한 "hello, world"가 작성된 것을 확인할 수 있다. 하지만 문자열 뒤의 '$'가 거슬리므로 "hello, world" 그리고 줄바꿈을 하라고 다시 명령해보자.
3) "hello, world" + 줄바꿈 실행
- 다시 컴파일을 해주고 a.out 파일을 실행해주면 "hello, world" 그리고 줄바꿈이 수행 된 것을 확인할 수 있다.
4) 그 외 명령어
- clang -o hello hello.c = hello.c 코드를 hello 라는 이름을 가진 파일로 컴파일 하겠다.
옆에 hello 라는 파일이 생성된 것을 확인 할 수 있다. - ls 명령어를 입력하여 리스트를 확인해보면 현재 디렉토리가 가지고 있는 파일들이 보이는데, '*'가 있는 파일도 있고 없는 파일도 있다.
'*'가 붙어 있는 파일은 실행가능하다는 의미로, 즉 컴퓨터가 이해할 수 있는 머신코드라는 의미이다.
'Stage > Computer Science' 카테고리의 다른 글
[C언어] 조건문과 루프 (0) 2021.05.26 [C언어] 문자열 (0) 2021.05.26 [컴퓨팅 사고] 알고리즘 (0) 2021.05.26 [컴퓨팅 사고] 정보의 표현 (0) 2021.05.26 [컴퓨팅 사고] 2진법 (0) 2021.05.26