//내가 공부한 것을 정리했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <iostream>
using namespace std;
int main() {
int favoriteNumber;
std::cout << "What's your favorite number? "<< std::endl;
std::cin >> favoriteNumber;
cout << "Amazing! That's my favorite number too!" << endl;
cout << "No really!!, " << favoriteNumber << " is my favorite number!" << endl;
return 0;
}
|
cs |
위의 예시 코드를 보자. C++의 구조1 에서 보았던 표와 비교해보면 어떤 키워드들이 사용되고 있는지 알 수 있다.
int 나 return 등의 키워드가 사용되고 있는거 같다.
코드 첫 줄의 #include <iostream> 을 보자. C++에서 # 은 전처리기, Preprocessor 를 의미한다.
이 코드를 컴파일해서 기계어로 바꾸기 이전에 이것부터 처리한다는 의미인데 위키피디아의 "C 전처리기" 를 한번 읽어보자.
여기서는 #include <iostream> 은 컴파일을 하기전에 iostream 이라는 헤더파일을 포함(include)시키겠다는 뜻이다.
iostream은 input output stream의 약자이고 입출력을 위한 헤더파일이다.
헤더파일은 위에서와 같이 <>로 불러오는 경우와 ""로 불러오는 경우가 있는데, <>는 C++에서 기본으로 제공되는 표준 라이브러리(Standard library, STL)을 사용할 때이고 ""은 우리가 만든 파일을 불러올 때 사용한다.
#include는 항상 소스코드의 최상단에 위치하도록 해야한다. C++ 같은 절차적 프로그래밍을 하다보면 자주 겪게 되는 오류가 코드의 순서(Sequence)가 맞지 않아서 실행이 원하는대로 되지 않을때가 있는데, 궁금하면 위의 코드에서 #include를 맨 밑에 넣어보고 실행시켜봐라.
그 다음 줄의 using namespace std; 을 보자.
std(standard) 라는 namespace를 사용(using)하겠다는 뜻인데, iostream 이라는 라이브러리에 std 라는 namespace 영역이 들어있다. (Visual Studio에서는 std를 마우스 좌클릭하고 F12를 누르면 확인가능하다.)
namespace는 코드를 묶는 공간이라고 이해하면 좋다. 예를 들어 여러 명이서 하나의 프로그램을 함께 만드는 작업을 한다고 가정했을때 아무리 노력해도 서로 같은 이름의 어떤 함수나 변수를 선언하게 되는 경우가 있다. A와 B라는 회사 둘 다 GetSalary() 를 만들어서 썼을때 컴퓨터는 이게 누구의 GetSalary() 인지 알아야 하기 때문에 namespace를 붙여주는 것이다. A::GetSalary() 는 A의 것이고 B::GetSalary() 는 B의 것이라고 이해하자.
namespace를 쓸 때 나오는 :: 는 Scope resolution operator, 한국어로는 범위 지정 연산자 라고 한다. 이름 공간 이외에도 여러 곳에서 자주 사용이 되는데 간단하게 A::B 이면, A에 있는 B를 사용하겠다! 라고 이해하자.
namespace 를 매번 타이핑 하지 않는 법 중 하나는 #include와 main 함수 사이에 using namespace 이름공간이름; 을 입력하는 것이다.
모든 C++ 프로그램은 최소 한개의 main 함수를 가진다. C++ 프로그램이 실행된다는 것은 main 함수의 내용이 실행된다는 뜻과 동일하다.
main 함수를 실행시키는 방법은 코드를 작성하고 컴파일( 파일명.obj) 하고 링크(파일명.exe) 하고 실행의 순이다.
cin 과 cout 은 입력과 출력을 하는 명령어다.
'C | C++' 카테고리의 다른 글
C++ Vector reserve( )와 resize( )의 차이 (0) | 2022.09.29 |
---|---|
auto 키워드 (1) | 2022.09.10 |
Rvalue reference 정리한 내용 (0) | 2020.11.20 |
const 와 readonly 의 차이 (0) | 2020.05.22 |
C++ 의 구조1 - 키워드 (0) | 2019.09.03 |