728x90

Hello, World 프로그램

본 강좌는 std_lib_facilities.h를 사용합니다.
다운로드 : http://www.stroustrup.com/Programming/std_lib_facilities.h
헤더파일 넣는 법 : [C++ 강좌] Visual Studio 설치


'Hello, World!'를 화면에 출력하는 프로그램

// 이 프로그램은 모니터에 'Hello, World!'라는 글을 출력합니다.
#include "std_lib_facilities.h"

int main() {
    cout << "Hello, World! \n";    // "Hello, World!" 출력
    return 0;
}


cout << "Hello, World! \n";

이 행은 Hello, World! 라는 문자열을 출력하고, 개행 문자를 출력합니다.
즉, 
Hello, World! 를 출력한 후에 커서가 다음 줄의 시작 위치로 이동합니다.

C++에서 리터럴은 큰 따옴표(")로 구분합니다. 즉, "Hello, World! \n"은 여러 문자로 이루어진 문자열이며, \n은 개행 문자를 가리키는 특수 문자입니다.

cout은 표준 출력 스트림이며, <<으로 지정한 내용을 화면에 출력합니다. cout이란 명칭은 '씨-아웃'으로 발음하며, 'character output stream'의 줄임말입니다.


// "Hello, World!" 출력

행의 끝에 있는 이 부분은 주석입니다. 한 행에서 // 다음에 나오는 모든 내용은 주석이 됩니다.
주석이란 코드를 읽는 프로그래머의 편의를 돕고자 작성되는 내용으로, 컴파일러는 주석을 무시합니다.

주석은 코드의 의도를 설명하며, 코드에서 직접 드러나지 않는 유용한 정보를 사람에게 제공합니다. 

프로그램은 두 가지 청중을 위해서 작성되어야 합니다. 첫 번째 청중은 바로 프로그램을 실행할 컴퓨터입니다. 하지만 프로그램을 읽고 수정하는 데 오랜 시간을 바치는 우리 자신도 두 번째 청중이 될 자격이 있습니다. 결론적으로 코드는 읽기 위한 것이며, 여러분이 하는 모든 작업을 읽기 쉽게 만들어야 합니다.


예제 프로그램의 첫 행도 주석이며, 독자에게 프로그램의 의도를 설명하고 있습니다.

// 이 프로그램은 모니터에 'Hello, World!'라는 글을 출력합니다.


#include "std_lib_facilities.h"

위의 행은 'include 지시어'로 컴퓨터가 std_lib_facilities.h 파일에 포함된 기능을 사용할 수 있게 지시합니다. 여기서는 모든 C++ 구현체에서 사용할 수 있는 기능이라는 의미로 위와 같은 파일명이 사용되었습니다. 파일의 내용은 앞으로 차차 살펴보기로 합시다.

#include로 포함되는 파일의 일반적인 확장자는 .h헤더 헤더 파일이라고 합니다. 헤더 파일은 cout처럼 프로그램 안에서 사용하는 용어의 정의를 포함합니다.


컴퓨터는 프로그램의 시작점을 찾을까요? 컴퓨터는 main 함수에서부터 프로그램을 실행시킵니다. 아래에서 'Hello, World!' 프로그램의 main 함수를 볼 수 있습니다.

int main() {
    cout << "Hello, World! \n";    // "Hello, World!" 출력
    return 0;
}

모든 C++ 프로그램은 프로그램의 시작점을 알리는 main 함수를 갖고 있습니다. 함수 간단히 말해 작성된 순서대로 실행해야 하는 명령어들의 집합으로, 그 집합(함수)을 가리키는 이름을 붙입니다. 위 예제의 함수는 다음과 같은 네 부분으로 이루어집니다.

  • 반환 타입(return type) : 함수가 종료되면 함수를 실행시킨 주체에게 돌려주는 결과의 타입은 int입니다. int라는 단어는 C++의 예약어로 다른 무엇을 가리키는 이름으로 사용할 수 없습니다.
  • 이름 : 예제의 함수 이름은 main입니다.
  • 매개변수 목록(parameter list) : 매개변수 목록은 소괄호로 둘러싸는데, 예제의 ( )는 매개변수 목록이 비어있음을 나타냅니다.
  • 함수 몸체(function body) : 함수 몸체는 중괄호 { }로 둘러싸며, 함수가 수행할 활동(구문)을 나열합니다. 구문이란, #include 지시어를 비롯한 다른 전처리기 지시어(preprocessor directive)가 아닌 부분을 칭합니다.

여기서 알 수 있듯이 가장 작은 C++ 프로그램은 다음과 같습니다.

int main() { }

위의 프로그램은 아무 일도 하지 않습니다. 'Hello, World!' 예제의 main()은 함수 본체에 두 개의 구문을 포함하고 있습니다.

cout << "Hello, World! \n";    // "Hello, World!" 출력
return 0;

프로그램은 먼저 화면에 Hello, World! 를 출력하고, 프로그램을 실행한 주체에게 0을 반환하는데, main() 함수를 실행하는 주체는 '시스템'이므로 우리가 직접 그 반환 값을 사용하지는 않습니다. 그렇다면 왜 0을 리턴해주는 것일까요? 일부 시스템(특히 유닉스와 리눅스)에서는 반환 값을 이용해서 프로그램이 성공적으로 종료되었는지 확인합니다. 보통 프로그램이 성공적으로 종료된 경우 main()0을 반환합니다.

728x90
728x90