이제 본격적으로 C언어 프로그래밍을 시작할 차례입니다. 프로그래밍 입문의 신고식이라 할 수 있는 Hello, World! 프로그램을 작성해보며 C의 기본적인 문법을 알아보도록 하겠습니다.
Hello, World!
아래 소스코드는 터미널 창에 “Hello, World!” 라는 문구를 띄우는 간단한 예시입니다.
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
C
복사
#include
C언어는 프로그래밍을 위한 기본적인 뼈대만 제공할 뿐 화면에 글씨를 쓰는 기능은 지원하지 않습니다. 이를 위해 외부 라이브러리를 사용해야 하는데요, C언어의 Standard Library 중 하나인 stdio.h를 사용합니다.
stdio.h는 Standard Input, Output의 약자로, 화면에 글씨를 출력하거나 키보드로 입력받거나 파일을 읽고 쓸 때 사용합니다.
stdio.h의 주요 함수
이러한 stdio.h 라이브러리를 사용하기 위해서는 #include라는 문장을 이용하며 이후 이어지는 홀화살괄호(<>) 안에 라이브러리의 이름을 입력합니다.
Standard Library는 C언어에서 기본적으로 제공하는 라이브러리로, 프로그래밍을 위한 기본적인 기능들을 제공합니다. Standard Library는 여러가지 헤더파일로 구성되어 있으며, 대표적으로 stdio.h, stdlib.h, string.h 등이 있습니다. 이 중 stdio.h는 입출력과 관련된 함수들을 제공하며, C언어에서 출력을 담당하는 printf() 함수도 stdio.h 라이브러리에 포함되어 있습니다.
stdio.h에 대한 자세한 내용은 뒤의 stdio.h 섹션에서 다룹니다.
#include와 같이 앞에 # 문자가 들어간 문장은 전처리문으로, 컴파일 과정에서 특수하게 취급됩니다. 이와 관련한 설명은 여기서는 넘어가고 이후 전처리문 섹션에서 자세히 알아보도록 하겠습니다.
main() 함수
프로그램을 컴파일해 실행하면 main() 함수가 실행됩니다. 즉, main() 함수는 프로그램의 시작점을 나타내는데요, 중괄호({}) 안에서 프로그래밍을 시작하면 됩니다.
여기서는 함수와 관련된 자세한 설명을 다루지 않습니다. 함수의 타입, 인자값, 반환값은 뒤의 함수 섹션에서 다룹니다.
printf() 함수
프로그램의 목적인 “Hello, World!”를 출력하기 위해 stdio.h의 printf() 함수를 사용합니다.
printf(”Hello, World!”);
•
printf : 함수의 이름을 작성합니다.
•
( … ) : 괄호 안에 함수에 제공할 데이터를 입력합니다. 여기서는 글씨를 출력하는 printf()함수를 사용하였기 때문에 출력할 글씨에 대한 정보를 넣어 주었습니다.
•
”Hello, World!” : C언어에서 글씨의 연속인 문자열은 큰따옴표(””) 안에 작성해 표현합니다.
•
; : C언어의 모든 구문의 끝에는 세미클론(;)을 입력해야 합니다.
세미클론은 전처리기를 제외하고 중괄호를 사용하지 않는 모든 문장의 끝에 입력합니다. 지금은 감이 잡히지 않더라도 코드를 작성하다 보면 언제 입력해야하는지 감이 생길것입니다.
return 문
return문은 함수의 종료를 알리는 역할을 합니다. 따라서 함수에서의 의도한 모든 동작이 완료된 후 입력하는데요, return 0;을 입력해 0을 반환하는 것은 프로그램이 정상적으로 종료되었음을 의미합니다.
만약 return문을 printf() 함수 위에 올려다 놓으면 printf() 함수가 작동하지 않은 체 프로그램이 종료되는 것을 확인할 수 있습니다.
VS의 컴파일러에서는 main() 함수에서 return문을 생략하여도 0이 반환된 것으로 간주합니다. 다만, 다른 플랫폼에서 생략했을 때 예기치 않은 결과가 발생할 수 있기 때문에 권장하지 않습니다.
주석
모든 프로그래밍 언어는 소스코드의 가독성을 높히기 위해 주석 이라는 기능을 지원합니다. 주석을 사용하게 되면 주석으로 표기된 부분은 컴파일 과정에서 모두 무시됩니다.
C 언어에서는 두 가지 종류의 주석을 지원합니다.
•
// : 한 줄에 주석을 작성할 때 사용합니다. // 뒤의 내용은 해당 줄 끝까지 주석 처리됩니다.
•
/* */ : 여러 줄에 걸쳐 주석을 작성할 때 사용합니다. 아래와 같이 함수의 설명을 작성하거나 파일을 설명할 때 주로 사용합니다.