gcc 사용하기
#include <stdio.h>
int main (void) {
printf("Hello World!");
retrun 0;
}
위의 코드로 Hello World!를 출력해봅시다. 컴파일을 하기전에 헤더와 main함수, 입출력에 대해서 알아봅시다
위의 코드에서는 stdio.h라는 헤더 함수를 사용했는데요 아래에서 쓴 printf함수 원래 기본 형은 printf()입니다. 괄호가 붙어있으면 대다수 함수라고 볼 수 있습니다. 여기서 중요한 점은 이는 함수라는 점인데요. 보통 이렇게 생각합니다. "우리는 저 함수를 선언해준 적이 없는데?" 라고 생각 할 수 있는데요. 아니에요! 사실 저희는 함수를 선언했답니다~ 바로 #include <stdio.h> 이 부분에서 사용했어요.
#include<stdio.h>에서 printf를 포함한 여러 함수들을 선언했다는 의미입니다. 다른 헤더 파일도 있는데 이는 각각의'~.h'와 같은 방식으로 여러가지 함수들이 '선언' 되어있습니다! 이를 #include안에 넣으면 됩니다.
또한 여기서 사용된 printf는 출력 함수로 출력 내용을 형식과 같이 나타나게 되면 사용할 수 있게 됩니다. scanf도 있는데 이는 입력 함수이며 printf와 같이 형식과 같이 표현하면 입력을 받을 수 있게됩니다.
이제 헤더와 입출력 함수에 대해 알았으니 main 함수의 원리에 대해 알아보겠습니다
int main() {
내용
return 0;
}
이는 main함수인데요 c언어에서는 main이라는 함수를 쓰면 프로그램이 실행됨을 의미하며, '0의 값이 반환될 경우, 프로그램이 정상적으로 마쳤으니 종료해라' 라는 의미를 갖고 있습니다.
이제 컴파일하고 실행 파일을 만들어 봅시다.
gcc hello.c -o hello.out 이를 통해서 컴파일을 할 수 있습니다.
이를 실행 할때는 ./hello.out 이렇게 치면 나오는데요 유닉스는 기본적으로 PATH라는 환경변수에 있는 디렉토리에서만 실행파일을 찾습니다.
만약 PATH라는 환경변수에 현재디렉토리를 의미하는 도트 문자(.)가 들어있지 않다면 현재 디렉토리의 실행파일은 절대 실행되지 않습니다. 게다가 현재 디렉토리를 PATH 환경 변수에 넣어준다 할지라도 도스처럼 현재 디렉토리를 먼저 찾는 일이 없고 PATH에 지정한 순서대로 수행합니다.
중간에 -o에 대해서 볼 수 있었는데요 이는 출력 파일명을 정하는 옵션입니다. 일반적으로는 파일명 그대로에다가 .out으로 출력 파일이라는 것을 의미하며 이 옵션을 사용하지 않고 gcc hello.c를 입력했을 때는 a.out으로 출력 파일이 생성됩니다.
이외에도 -c, -l, -L 옵션이 존재하는데요. 이는 좀더 심화된 것으로 이번 챕터에서는 다루지 않도록 합니다! 나중에 심화를 하게된다며 배우도록 하겠습니다!!