본문 바로가기
🎓 Computer Science

CS50 Sandbox를 이용한 hello.c (C기초)

by 슬용이 2022. 2. 4.

CS50 Sandbox

https://sandbox.cs50.io/

 

CS50 Sandbox

Temporary programming environments for students and teachers.

sandbox.cs50.io

 

폴더 아이콘 옆의 +버튼을 눌러서 파일을 생성해주자

 

int main(void)
{

}

의 뜻은 시작한다의 의미를 가지고 있다.

앞으로 작성할 코드는 모두 이 코드 안에 쓰게 될 것이다.

 

printf("hello,world");

C언어에서 printfsay와 동일하다. 출력하고 싶은 것이 있을 때 사용한다.

코드의 끝에는 항상 ; 을 적어줘야 하며, 글자나 단어, 문장을 적을 때는 항상 ""으로 감싸줘야 한다.

 

컴파일러 Compiler

이렇게 작성한 코드는 소스코드라 불리며, 컴퓨터가 이해하기 위해서는 머신코드로 변환해야 한다.

이렇게 변환을 해 주는 프로그램을 컴파일러라고 부른다.

>_ Terminal

작성한 코드는 하단의 터미널Terminal에 명령어를 작성함으로써 실행시켜 볼 수 있다.

우리가 입력한 코드는 소스코드이기에 이것을 머신코드로 변경을 해야한다.

$ clang hello.c

$는 ~를 진행하겠습니다의 뜻을 가지고 있으며, 위 코드를 터미널에 입력하게 되면 a.out 이라는 머신코드가 생성된다.

 

$ clang hello.c
$ ./a.out
hello,world$

./a.out은 a.out 코드를 실행한다는 뜻이고 Enter를 누르면 hello,world$가 나타난다.

$가 hello,world 뒤에 나타난 것은 줄바꿈을 해주지 않아서 나타난 문제이다.

 

줄바꿈은 \n 을 입력하면 된다.

#include <stdio.h>

int main(void)
{
    printf("hello,world\n");
}
$ ./a.out
hello,world$

위 처럼 printf문 뒤에 \n을 입력하고 다시 a.out 파일을 실행시키면 변하는 것이 없다.

새로 컴파일을 하지 않았기 때문이다.

 

$ clang hello.c
$ ./a.out
hello,world

처음부터 다시 hello.c 파일을 머신코드로 변환하고 실행시켜주자.

잠깐, 그럼 머신코드인 a.out의 파일명은 변경할 수 없는걸까? 당연히 변경할 수 있다.

 

$ clang -o hello hello.c
$ ./hello
hello,world

컴파일을 할 때 -o "생성할 머신코드 파일명" "컴파일 할 소스코드 파일명" 을 적어주자

hello로 머신코드를 생성했고, 정상적으로 작동하는 것을 확인할 수 있다.

 

$ ls
a.out*  hello*  hello.c
$ rm a.out
rm: remove regular file 'a.out'? y
$ ls
hello*  hello.c
$

존재하는 파일들은 ls 를 통해 확인할 수 있는데 파일명 뒤에 * 표시가 붙은 것은 머신코드이다.

삭제는 rm 명령어를 통해 진행할 수 있다.

 

 

댓글