1. 가장 간단한 C++ 프로그램
int main() // 가장 간단한 C++ 프로그램
{
} Code language: JavaScript (javascript)
- 이 코드는 매개변수가 없고 내부 동작도 수행하지 않는
main함수를 정의합니다. - 왼쪽 중괄호 {는 main 함수 본문의 시작, 오른쪽 중괄호 }는 함수 본문의 끝을 나타내며 실행할 코드는 {} 안에 작성합니다.
- 이중 슬래시
//는 한 줄 주석으로,//부터 줄 끝까지의 내용은 사람이 읽는 정보일 뿐 컴파일러가 무시합니다. - 완전한 C++ 프로그램에는 전역
main()함수가 단 하나 반드시 존재해야 하며 프로그램 실행은main부터 시작됩니다. int는 함수가 정수 값을 반환함을 의미합니다. 함수 내부에서 0을 반환하면 정상 종료, 0이 아닌 값을 반환하면 오류가 발생한 것입니다.- 5번 항목의 반환 값은 Unix/Linux 시스템이 읽지만 대부분의 Windows 프로그램에서는 사용하지 않습니다.
2. 표준 출력 Hello World 전체 예제
#include <iostream>
int main()
{
std::cout << "Hello, World!\n";
}Code language: C++ (cpp)
#include <iostream>:컴파일러에 표준 입출력 스트림 라이브러리 선언을 불러오라고 지시합니다. 이 줄이 없으면std::cout출력 구문을 인식할 수 없습니다.
iostream은 앞서 설명한 표준 라이브러리 중 하나로, 컴파일러에 기본 탑재된 C++ 코드입니다. 콘솔에 텍스트를 출력하는 등 입출력 관련 작업에 사용합니다.
<<출력 연산자: 오른쪽 내용을 왼쪽 출력 객체 std::cout에 기록합니다. 이 예제에서는 문자열"Hello, World!\n"를 표준 콘솔(CMD 터미널)에 출력합니다.- “Hello, World!\n”은 문자열 리터럴로 큰따옴표로 감싼 텍스트입니다. 이스케이프 문자
\n는 개행 문자로 출력 후 커서가 다음 줄로 이동합니다. std:::네임스페이스 한정자로cout가 표준 라이브러리std하위 구성 요소임을 나타냅니다. 뒤에서using namespace std;를 소개해std::접두사를 생략하고cout만 사용하는 방법을 설명합니다.
네임스페이스 한정자의 목적은 동일한 이름 충돌을 방지하기 위해 라이브러리에 접두사를 붙이는 것입니다. 예를 들어 반에 동명이인 학생이 두 명 있으면 선생님께서 Jason 1, Jason 2처럼 구분하는 라벨을 붙이는데, std의 역할도 이와 같습니다.
전체 예제
아래 예제에는 별도 함수 두 개를 정의했으며 main 함수에서 한 함수를 호출하고 해당 함수가 다시 다른 함수를 호출하는 구조입니다. 원의 넓이를 계산하는 프로그램으로 반지름을 입력하면 원의 넓이를 출력합니다.
#include <iostream>
using namespace std; // std 네임스페이스를 선언하면 이후 std::를 생략 가능
// 원 넓이 계산
double circle_area(double x)
{
return 3.14 * x * x;
}
// 원 넓이 출력
void print_circle_area(double r)
{
cout << "The area of circle with radius " << r << " is " << circle_area(r) << "\n";
}
int main()
{
print_circle_area(2.0); // 반지름 2, 원 넓이 출력
return 0;
}Code language: C++ (cpp)
실행 결과
The area of circle with radius 2 is 12.56Code language: JavaScript (javascript)
cout에 여러 개의 <<를 연결해 여러 내용을 연속 출력할 수 있으며 \n을 사용하지 않으면 모든 내용이 한 줄에 표시됩니다. 문자열 리터럴 외에도 double 타입 변수 r과 같은 변수도 출력 가능합니다.
void print_circle_area(double r)의 괄호 안 (double r)은 매개변수입니다. 매개변수란 외부 호출 시 값을 전달받는 변수를 의미합니다. main에서 print_circle_area(2.0);를 호출하면 2.0이 전달되어 함수 내 r=2.0이 됩니다. 이어 cout은 텍스트, 변수 r, circle_area(r)의 결과를 순서대로 출력합니다. 이때 r의 값 2.0이 double circle_area(double x)의 x에 전달되어 x=2.0이 되고 3.14*2*2=12.56이 계산된 뒤 return으로 호출자에게 반환됩니다. 실행 로직은 아래 코드와 동일합니다.
cout << "The area of circle with radius " << r << " is " << 12.56 << "\n";Code language: C++ (cpp)
출력이 완료되면 }로 print_circle_area 함수가 종료되고 처리 흐름이 main 함수로 돌아갑니다.
