본격적인 강의 노트를 시작하겠습니다.
keywords
1. Operating System (OS)
2. Function
3. Expression
main function
OS(ios, windows, mac 등)가 가장 먼저 실행하는 함수입니다.
#include <iostream>
// 전처리기, preprocessor directive
int main(void)
{
int x = 2; // literal : 2, 3 등의 상수
int y = x + 3;
std::cout << y << std::endl;
return 0;
}
형태로 선언, C++ 함수 코드 내 줄바꿈 또는 공백은 아무런 의미가 없습니다. 실행과정에서도 철저히 무시되니 보기 편하게 코딩하셔도 무관합니다.
Data type
int는 integer의 약어로, 정수형 숫자를 반환(return 0;)하기에 출력 형태 자료형을 정수로 선언하는 것이라고 처음엔 대충 넘기시면 됩니다.
Expression
main의 중괄호({ }) 내에는 다양한 내용이 포함될 수 있습니다. 예를 들면 (x+y) 등의 수식등을 넣을 수도 있습니다. 이러한 수식을 expression이라 말하기도 합니다. (자세한 내용은 밑에 있는 1번 생각하기를 참조하세요!)
Variable, Literal
main 내부에 수식을 작성하기 위해 우리는 x, y와 같은 변수를 정의합니다. 마찬가지로 int를 사용해서 선언했는데, 이는 우항의 literal(2, 3, x + 3)이 정수이기 때문입니다.
Preprocessor Directives(#~)
C 언어 계열은 컴파일 이전에 전처리기를 통해 여러 기능을 지원합니다.
이러한 전처리기(Preprocessor)가 실행될 때, #으로 시작하는 지시자를 전처리기에서 먼저 찾게 됩니다.
C++에서 대표적인 전처리기 지시자(preprocessor directive)의 사용예시는 #include <iostream>
입니다. 이 때 #include
는 지시자, <iostream>
은 헤더파일명입니다.
iostream 헤더의 내부에는 많은 기능을 사용하기 위한 다양한 선언들이 내장되어 있으며, C의 stdio.h
기능을 대부분 가지고 있다고 생각하시면 되겠습니다. 이외에 다양한 헤더파일, 라이브러리의 용도와 기능들은 후에 상세히 나올테니, 오늘은 간단한 개념 정도만 작성하겠습니다.
std와 <<, cout, endl
std::cout << y << std::endl
라는 코드를 보면 이게 무슨 소리인가? 외계어인가? 라는 생각을 하실 수 있습니다. name space는 뭘 의미하며, cout은 무엇을 의미할까요? 이번 강의에서는 깊게 다루지 않을 것이기 때문에 우린 그냥 저 알파벳의 조합을 겉핥기로 보고, 잠깐 묻어둘 예정입니다.
std::
는 namespace std
(standard)를 의미하는데, 이러한 namespace의 구분은 동명의 함수가 내장된 헤더들을 한 곳에서 호출할 경우 생기는 충돌을 예방하고자 작성됩니다.
쉽게 std라는 공간에 있는 cout과 endl를 가져다 쓴다! 라고 생각하시면 됩니다. C++에서는 이러한 충돌을 방지하기 위해 표준 함수와 변수를 말 그대로 표준인 standard 공간에 기록해둔 것이죠.
>>
, <<
는 operator, 연산자로 불립니다. 이러한 연산자를 설명하기 위해서는 <istream>``<ostream>
을 나누어 이해하는 편이 빠르기 때문에 후에 집중적으로 적도록 합시다. 현재는 operator라고 불리지만, 과거에는 stream으로 불렸다고 합니다. 지금 생각해보면 stream이라는 표현이 흐름을 연상케 하니까 자연스럽게 이해되는 것 같기도 하네요 🤣🤣
cout
은 console output의 약자로, 말 그대로 콘솔창에 주어진 정보를 출력하는 역할을 담당합니다. 이 또한 이후 강의에서 뜯어볼 예정인데, 처음 글을 보시는 분께 객체에 대한 설명을 두서없이 하기엔 가독성이 떨어지니 후에 뜯어서 말씀드리겠습니다.
endl
는 end line입니다. 조금만 검색하면 개행 문자를 삽입한다. 라는 표현을 볼 수 있는데, 이렇게 생각하면 처음부터 너무 어려우니까 우린 줄바꿈 이라고 생각하고 넘어갑시다.
어떤가요? 새로운 언어를 배우는것은 언제나 즐거운 일이죠? 그럼 우린 홍정모 교수님이 남겨주신 숙제를 정리해보자구요.