1. C++를 공부해야 하는 이유
우선 c++을 공부해야 하는 이유에 대해 알아봤다.
- 메모리 관리를 직접 컨트롤 할 수 있다. 반대로 가상머신이 없기 때문에 난이도가 다른 언어에 비해 높다고 할 수 있다.
- 기계어와 가장 가깝다.
- 내가 모든 것을 컨트롤 하여 최고의 효율을 낼 수 있는 최적의 환경을 만들 수 있다.
또한 게임 개발을 위해 c++을 공부해야 하는 이유는 c++의 경우 개발속도가 빠르지 않다. 하지만 구동이 복잡한 프로그램 일수록 빠르게 개발하면 각종 버그나 문제가 터져 구동이 제대로 되지 않는다. 게임에서는 개발 속도보다 최적화, 버그, 메모리 관리 등등이 더 중요하다. 프로그램의 높은 효율의 환경을 만들 수 있는 c++이 게임 개발에 적합하다고 생각한다.
2. 프로젝트 생성 및 주석
가장 먼저 Visual Studio 2022를 다운로드 받는다. 그 후 새 프로젝트 만들기 > 빈 프로젝트 > 프로젝트의 이름과 저장 위치를 설정 해주면 된다.
주석은 코드나 작성한 것 앞에 //를 입력하면 되는데 글자가 초록색으로 바뀌며 빌드에 영향을 주지 않는다.
3. 자료형
자료형을 공부하기전 비트라는 개념을 알아야 했다. 1바이트는 8비트로 구성되어 있다. 이는 1바이트가 8개의 공간이 있고 하나하나가 1비트이다. 비트에는 0,1 둘중 하나가 들어갈 수 있는데 이는 컴퓨터가 2진수를 사용하기 때문이다. 8비트에는 0 또는 1이 각각 들어갈 경우의 수가 256가지이다.(2의 8제곱) 따라서 8비트 즉, 1바이트는 256가지의 숫자를 표현할 수 있다.
1. 정수형 자료형
정수형 자료형은 1, 2, -1, 0 등 딱 떨어지는 숫자를 의미한다. 종류는 char, short, int, long, long long 이 있다. 각각의 크기는 순서대로 1바이트, 2바이트, 4바이트, 4바이트, 8바이트이다.
int a = 1; 이렇게 선언할 수 있다.
2. 실수형 자료형
실수형 자료형은 부동소수점을 의미한다. 이 때 컴퓨터는 2진수로 숫자를 표현하기 때문에 정확한 실수를 표현할 수 없고 어느정도의 오차를 가지고 있다. 2의 제곱으로 커지거나 작아지기 때문에 최대한의 근사 값을 표현 해준다. 종류로는 float, double이 있다. 각각의 크기는 4바이트, 8바이트이다.
float a = 2.3; 이렇게 선언할 수 있다.
4. 연산자
정수의 실수는 표현 방식이 다르다. 실수의 표현 방식은 위에서 언급했던 것처럼 정밀도에 의존한다. 따라서 double 자료형이 float 자료형보다 더 아래의 소수점까지 정밀하게 표현이 가능하다. 또한 정수는 정수끼리, 실수는 실수끼리 연산하되 두 표현 방식의 피연산자가 연산될 경우 명시적으로 반환하자.
예를 들어 float = 10.412332f + (float)20; 이런 식으로 말이다.
1. 산술 연산자
산술 연산자에는 +, -, *, /, %가 있다.
- +는 덧셈 연산자이다.
- -는 뺄셈 연산자이다.
- *는 곱셈 연산자이다.
/, % 연산자는 약간의 암기가 필요하다.
- /는 몫을 구한다.
- %는 나머지를 구한다.
2. 증감 연산자
증감 연산자ㄴ에는 ++, --이 있다. ++은 1씩 더하는 것이고 --은 1씩 빼는 것이다. 더 정확하게는 한 단계씩 더해지고 빼지는 것이라고 할 수 있다. 변수의 앞에 증감 연산자가 위치하는 것을 전치라고 하고 뒤에 위치하는 것을 후치라고 하는데 후치를 할 경우 연산자 계산 순위가 가장 나중으로 밀린다.
3. 논리 연산자
논리 연산자는 논리에 따라 연산을 하는 것을 말한다.
- ! : 역 연산, 반대 값을 출력.
- &&(AND) : 둘다 true여야 true, 하나라도 거짓이면 거짓.
- ||(OR) : 둘 중 하나만 true이면 true이다.
- 참(true), 거짓(flase) : 참은 0이 아닌 값으로 대표적으로 1이 있다. 거짓은 0.
5. If, else 구문
if는 알고 있듯 만약이라는 뜻이다. 만약 a라는 조건에 충족한다면 if구문을 실행하고 아니라면 다음 구문(else)을 실행한다는 의미이다.
6. switch 구문
iTest가 20인 상태에서 각각 10, 20에서 실행할 구문이 있고 다 아니라면 default가 실행 된다.
7. 변수
변수에는 크게 지역 변수와 전역 변수가 있다.
- 지역 변수는 함수 안에 선언된 변수이다
- 전역 변수는 함수 밖에 선언된 변수이다.
또한 int Add()를 선언 했을 때 int는 반환 타입, Add는 함수 이름이다. 함수 안에는 똑같은 이름의 변수는 존재할 수 없다.