도리의 지도

반응형

CS50 하버드 대학 비전공자를 위한 컴퓨터 과학 2강 - C언어(1)_요약본

2. C언어 - CS50 Sandbox 사용

1) C언어 기초

소스 코드 - C c++ java 파이선 

머신 코드 - 0과 1로 이루어진 숫자 코드


우리가 직접 작성한 코드는 “소스 코드”라고 불립니다. 

이를 컴퓨터가 이해할 수 있는 2진수 형태로 변환 한 것이 “머신 코드”입니다.


이런 작업을 컴파일러라는 프로그램이 수행해줍니다.

ex) 컴파일 실행 파일 생성 명령 : clang Hello.c 

ex) 현재 폴더 소스 실행 명령 : ./a out에서 제일 앞에 있는 .은 지금 있는 현재 폴더를 나타냅니다. 

ex)- o hello hello.c : 출력과 관련된 인자로 -o 어떤 이름은 지정하면 hello.c 소스코드를 머신코드로 따로 저장합니다.


ls : [현재 폴더 기준] 리스트를 보여준다.

rm : 삭제할 파일을 입력하면 삭제할지 물어본다.




2) 문자열

변수의 이름은 무엇을 정해도 무관하지만, 변수를 저장하는 데이터의 종류는 아주 정확하게 명시해줘야 합니다. 그래서 우리는 저장하고자 하는 값의 종류가 문자열(string)이라는 것을 알려줘야 합니다. 이때 string을 형식지정자라고 합니다.


우리는 이름이라는 문자열을 받기 때문에 string에서의 s를 % 뒤에 붙여서 인자를 받아줍니다. 그래서 최종적으로는 printf("hello, %s\n", answer);이 되는 것입니다.


가장 위에 포함된 cs50.h 파일 안에 string이라는 문자열 형식과 get_string이라는 함수에 대한 코드가 포함되어 있습니다. 이 파일을 포함해야만 전체 코드를 컴파일하고 실행할 수 있습니다.


터미널 창에 아래 명령어를 입력하여 컴파일을 할 수 있습니다.



$ clang -o string string.c -lcs50

여기서 -o string은 string.c 를 string.out 이라는 머신 코드로 저장하도록 하는 명령어입니다.

  • lcs50은 “link”라는 의미를 지닌 -l 이라는 인자에 우리가 추가로 포함한 “cs50” 파일을 합친 것입니다. 이를 통해 컴파일 시 cs50 파일을 연결하도록 알려줄 수 있습니다.

다소 복잡한 이런 과정 대신에, 아래 make 명령어를 통해 간단하게 컴파일을 수행할 수도 있습니다.

$make string ( 소스 코드를 머신 코드로 변경해준다 )

이처럼 작성한 코드를 컴파일하고 실행하면, 사용자에게 입력값을 받고 문장 내에 포함하여 출력하는 프로그램이 됩니다. make 프로그램 자체는 클라우드 기반의 리눅스에 저장되어 있는 프로그램이다.


이 과정은 라이브러리에 함수를 가지고는 추상화(abstraction)라 할 수 있다. 복잡한 개념 또는 기능을 가져다 사용한다. 즉, 내가 함수를 만들면 뒤에서 뭐가 일어나는지 알 필요가 없는 것이다.

  • 리눅스 유닉스 일반적인 명령어 [clang, make, ls, rm] 운영체제 안에서 자주 사용하는 명령어다.



3) 조건문과 루프

조건문 If, While, for 등을 사용한다. C언어를 따로 공부한 적이 있어서 이 부분은 익히 잘 알고 있는 내용이기에 생략한다.





공유하기

facebook twitter kakaoTalk kakaostory naver band