본문 바로가기

IT/C++

[C++] 기본 소스코드 작성

위에서 대충 C++ 개요를 보고 오셨을테니 이번엔 본격적으로 간단한 프로그램을 하나 만들어봅시다.

네 모르는 사람도 알고있는 Hello World! 입니다.

 

간단한 텍스트 출력문이지만 가장 기본적이죠.

 

참고로 비주얼 스튜디오나 기타 IDE를 설치하셔야 합니다.

VS시리즈만해도 설치방법 검색만하면 두루두루 나오니 여기서는 굳이 설명하지 않습니다.

 

 

우선 프로젝트를 새로 만들어야하니 [새로 만들기] - [빈 프로젝트]를 클릭하여 아무것도 없는 깨끗한 새 프로젝트를 생성합니다.

 

그리고 우측의 솔루션 탐색기의 프로젝트 이름에 우클릭을 한 후 [추가] - [새 항목] - [Visual C++] - [C++ 파일]을 선택하여 이름을 "main"으로 입력하고 [추가]버튼을 누릅시다.

 

이렇게 설명해줬는데 어딨냐고 묻지마세요.

제대로 찾아보시면 있습니다.

 

 

그러면 솔루션 탐색기의 "소스 파일" 폴더에 "main.cpp" 파일이 새로 생겼음과 동시에 텍스트 입력 필드가 펼쳐집니다.

여기까지가 기본적인 소스 파일 추가 방법이였습니다.

 

그러니 이제부터 소스를 입력 해 보도록 하죠.

다음과 같이 입력합시다.

#include <iostream>

int main()
{
	std::cout << "Hello World!";
    	return 0;
}

당연하지만 결과는 검은 콘솔창에 "Hello World!" 한문장 딱 하나 출력되고 종료됩니다.

 

C++ 조금 공부하신 분은 어..? 거리실건데 문제없이 잘 돌아갈거니 걱정마세요.

차근차근 설명할겁니다.

 

우선 #include 이건 무엇인가?

이건 선행처리문입니다.

외부에 선언된 함수나 상수 등을 사용하기 위해서 헤더파일이라는 일종의 메뉴판 비스무리한 목록파일을 불러오는 역할을 합니다. 당연하지만 이거 안쓰면 소스코드에 뭘 입력하던 이게 무슨 명령인지 알아먹질 못합니다.

 

iostream은 여기서 C++ 표준 입출력을 담당해주는 클래스입니다. 헤더파일 아니에요. 클래스임

클래스가 뭔가인가는 다음에 이야기하도록하고, 우선 이 클래스는 "입력 개체", "출력 개체"등등이 포함되어 있습니다.

 

밑의 std::cout이 그 예 입니다.

C++ 출력문의 대표적인 요놈은 "cout 객체" 라 불리는데, 다양한 데이터를 출력하는데 사용되는 C++에서 미리 정의된 출력 스트림을 나타내는 객체입니다.

 

문법은 보시다시피 삽입연산자(<<)를 사용하여 쌍따옴표 안의 데이터를 밀어넣는 모양새입니다.

이전에 C언어 공부해오신분은 이 삽입연산자가 왼쪽 시프트 연산자와 똑같은 모양임을 알 수 있을텐데, 이건 연산자 오버로딩이라는 것을 활용한 것 입니다. 이것도 나중에 설명할 기회가 나오면 그 때 다루겠습니다.

 

그리고 명령줄이 끝나면 세미콜론(;)을 붙이는건 업계간의 국룰입니다.

문장의 마침표와 같은 의미이니 절대로 빼먹지 마세요.

 

 

return 0는 함수 종료문인데,

C언어 공부하셨을 분이라면 다들 아시겠지만 말 그대로 0을 반환한다는 뜻 입니다.

그러니까 저 명령이 끝나면 0을 출력한다 이말입니다.

 

0이 출력되는게 먼 상관이죠? 하는 분들에게

위의 int main()이 보이시나요? 프로그램의 시작점입니다.

모든 C++ 프로그램은 항상 main() 함수를 가지고 있습니다.

컴파일러가 저것을 첫 시작점으로 약속했기 때문이죠.

 

여기서 맨 앞에 int를 붙여놓았음을 알 수 있는데 정수 자료형을 뜻합니다.

1,2,3,4,5,6,7,8,9...이런거요. 소숫점 붙은거 말고 완벽한 자연수

여하튼 0을 반환하게 되면 int 0을 반환한다는 의미가 되며, 이는 현재 실행 중인 함수를 끝내려는 의미입니다.

사실 1이나 -1로 입력하더라도 종료가 되긴합니다만, 일반적으로 0을 반환하면 해당 함수를 성공적으로 끝냈다는 의미가 됩니다. 즉 암묵의 룰 비스무리한거죠.

 

-1이나 1, 2등 다른 값으로 반환하는 것은 보통 뭔가 문제가 있다거나 다른 동작을 했다는 의미입니다.

그러니 성공적으로 함수가 끝났다는 것을 운영체제에 알리기 위해서 0을 쓰는 것이죠.

 

윈도우나 리눅스 등지의 셸에서 0을 true로 간주하기에 이렇게 하는 것이랍니다.

운영체제의 셸이 무언인가는 나무위키를 참고...

 

간단히 말해서 이용자와 커널(컴퓨터 시스템 통제 프로그램) 사이에서 이용자의 명령을 해석해 처리 결과를 커널에게 넘겨주는 녀석입니다.

 

 

위에서 모르는 거 있으면 댓글로 질문해주세요.

 

'IT > C++' 카테고리의 다른 글

[C++] C++ 개요  (0) 2020.02.02