강좌 : 부스트캠프 모두를 위한 컴퓨터과학(cs50 2019)
#include <stdi.h>
int main(void)
{
printf("hello, world\n")
}
main
: 프로그램의 시작점으로써 실행 버튼을 클릭하는 것과 같다
printf
: 출력을 담당하는 함수
stdio.h
: 라이브러리 라고도 하며 정확히는 헤더파일
make나 clang을 사용해서 프로그램을 실행하면 4개의 단계를 거치게 된다.
#
으로 시작되는 C 소스코드는 해당파일의 실제코드로 대체#include가 전처리기에게 다른 파일의 내용을 포함시키라고 알려주면 그 파일에 직접 들어가 해당되는 코드를 가져와서 나의 파일에 포함 시키는데 이 파일은 여전히 C 소스코드 형태이며 stdio.h 파일의 내용이 #include 부분에 포함된다
코드가 clang에 의해 컴파일되면 C로 작성된 소스코드는 어셈블리 코드라는 중간단계로 바뀌게되고 컴퓨터의 뇌인 CPU가 실제로 이해할 수 있는 언어에 조금 더 가까워진다
만약 프로그램이(math.h나 cs50.h와 같은 라이브러리를 포함해) 여러 개의 파일로 이루어져 있어 하나의 오브젝트 파일로 합쳐져야 한다면 링크라는 컴파일의 마지막 단계가 필요하다
이 4단계를 거치면 최종적으로 실행 가능한 파일이 완성
오류가 일어날 경우 sandbox.cs50.io
에서 $ help50 make 파일이름
을 사용할 경우 컴파일시 생기는 오류를 해석
코드의 오류가 아니라 사용자의 실수로 인한 오류를 확인할 땐 CS50 IDE
이용
ide.cs50.ioE
를 사용하면 debug50
을 사용하여 디버깅 가능
소스코드에 직접 브레이크포인트를 지정하고 컴파일한 후 $ debug50 ./파일명
을 실행하면 오른쪽 패널을 통해 변수의 값을 확인하거나 브레이크포인트로부터 한줄씩 코드를 실행할 수 있다
디버깅 종료시 : ctrl + c