[2023 방통대 C 스터디] 2. Hello, World!

Cover Image

이제 본격적으로 C언어 프로그래밍을 시작할 차례입니다. 프로그래밍 입문의 신고식이라 할 수 있는 Hello, World! 프로그램을 작성해보며 C의 기본적인 문법을 알아보도록 하겠습니다.

Hello, World! #

아래 소스코드는 터미널 창에 “Hello, World!” 라는 문구를 띄우는 간단한 예시입니다.

c #include <stdio.h>

int main() { printf("Hello, World!"); return 0; }

#include #

C언어는 프로그래밍을 위한 기본적인 뼈대만 제공할 뿐 화면에 글씨를 쓰는 기능은 지원하지 않습니다. 이를 위해 외부 라이브러리를 사용해야 하는데요, C언어의 Standard Library 중 하나인 stdio.h를 사용합니다.

stdio.h는 Standard Input, Output의 약자로, 화면에 글씨를 출력하거나 키보드로 입력받거나 파일을 읽고 쓸 때 사용합니다.

  • stdio.h의 주요 함수

    • printf() : 문자열을 출력합니다. 서식 지정자를 사용하여 출력 형식을 지정할 수 있습니다.
    • scanf() : 사용자로부터 입력을 받습니다. 서식 지정자를 사용하여 입력 형식을 지정할 수 있습니다.
    • getchar() : 키보드로부터 한 글자씩 입력을 받습니다.
    • putchar() : 한 글자를 출력합니다.
    • fgets() : 문자열을 입력 받습니다.
    • fputs() : 문자열을 출력합니다.
    • fprintf() : 파일에 문자열을 출력합니다. 서식 지정자를 사용하여 출력 형식을 지정할 수 있습니다.
    • fscanf() : 파일로부터 입력을 받습니다. 서식 지정자를 사용하여 입력 형식을 지정할 수 있습니다.
    • feof() : 파일의 끝인지 검사합니다.

    이 외에도 perror(), rewind(), fseek() 등 다양한 함수들이 포함되어 있습니다.

이러한 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.hprintf() 함수를 사용합니다.

printf(”Hello, World!”);

  • printf : 함수의 이름을 작성합니다.

  • **(** … **)** : 괄호 안에 함수에 제공할 데이터를 입력합니다. 여기서는 글씨를 출력하는 printf()함수를 사용하였기 때문에 출력할 글씨에 대한 정보를 넣어 주었습니다.

  • ”Hello, World!” : C언어에서 글씨의 연속인 문자열은 큰따옴표(””) 안에 작성해 표현합니다.

  • ; : C언어의 모든 구문의 끝에는 세미클론(;)을 입력해야 합니다.

    💡 세미클론은 전처리기를 제외하고 중괄호를 사용하지 않는 모든 문장의 끝에 입력합니다. 지금은 감이 잡히지 않더라도 코드를 작성하다 보면 언제 입력해야하는지 감이 생길것입니다.

return 문 #

return문은 함수의 종료를 알리는 역할을 합니다. 따라서 함수에서의 의도한 모든 동작이 완료된 후 입력하는데요, return 0;을 입력해 0을 반환하는 것은 프로그램이 정상적으로 종료되었음을 의미합니다.

만약 return문을 printf() 함수 위에 올려다 놓으면 printf() 함수가 작동하지 않은 체 프로그램이 종료되는 것을 확인할 수 있습니다.

💡 VS의 컴파일러에서는 main() 함수에서 return문을 생략하여도 0이 반환된 것으로 간주합니다. 다만, 다른 플랫폼에서 생략했을 때 예기치 않은 결과가 발생할 수 있기 때문에 권장하지 않습니다.

주석 #

모든 프로그래밍 언어는 소스코드의 가독성을 높히기 위해 주석 이라는 기능을 지원합니다. 주석을 사용하게 되면 주석으로 표기된 부분은 컴파일 과정에서 모두 무시됩니다.

C 언어에서는 두 가지 종류의 주석을 지원합니다.

  • // : 한 줄에 주석을 작성할 때 사용합니다. // 뒤의 내용은 해당 줄 끝까지 주석 처리됩니다.

  • /* */ : 여러 줄에 걸쳐 주석을 작성할 때 사용합니다. 아래와 같이 함수의 설명을 작성하거나 파일을 설명할 때 주로 사용합니다.