2019년 3월 26일 화요일

국비 교육 : 게임 프로그래밍 020일

20일 차 교육 내용 메모를 옮겨본다.

저번 교육에 이어서 동적 할당에 대한 내용이 계속 교육되었다. 그리고 디버깅과 파일 분할 방식에 대한 내용이 교육되었다.


데이터를 정확히 제어하기 위해서는 소멸, 해제 등에 신경을 써야 한다.
동적 배열은 주소화 함께 길이 정보를 같이 알고 있기에 해제하면 관련된 메모리 영역이 초기화된다.

delete[] values;
values = nullptr;

항상 변수를 null로 초기화하는 습관을 들여야 한다.



버그
- 논리 오류 또는 코드적 오류

디버그
- 소스 코드의 버그를 찾는 행위

디버깅
- 디버그를 하는 행위

디버그 시작 → 단계별 코드 실행 → 중단점 BreakPoint
- VS에서 디버그의 라인별 실행은 F10을 주로 사용한다.
- F11은 내부정의까지 훑고 진행한다.

조사식
- VS에서 지정한 변수를 입력해서 디버깅 시 값을 확인할 수 있는 기능


파일 분할
- 여러 CPP 파일을 사용하는 것을 의미한다.
- 빌드하면 컴파일된 모든 파일은 1개의 파일로 합쳐진다.
- 컴파일되서 한자리에 모인 뒤 링킹을 진행한다.
- 이를 위해 전방선언(프로토타입)이 되어 있어야 한다.

전역 변수
- 두 파일에 동일한 전역 변수가 있을 경우 에러가 발생한다.
- 주 : 선언 , 부 : extern 선언의 방식으로 사용해야 한다.

정적 전역 변수는 해당 cpp 에서만 사용할 수 있다.
다른 cpp에서 선언해 사용할 수 없다.


전처리기(선행 처리기)
- 컴파일 이전에 실행되는 문법
- #이 붙어 선언
- 뒤에 ';'이 붙지 않음
- 한 줄에 하나의 전처리만 가능
- \기호를 사용해 하나의 전처리를 여러 줄에 선언하는 것이 가능

빌드 단계
- 코드 작성 → 컴파일 시작 → 전처리 → 컴파일 → 링킹 → 빌드

#include ○○○○
- <   > 로 선언할 경우 지정된 VC++ 설정된 경로 기준
- "    " 로 선언할 경우 현재 프로젝트의 경로를 기준

상대 경로
- 실행 파일이 있는 경로 기준
- data/abc.jpg

절대 경로
- 볼륨명(드라이브명)부터 시작하는 경로
- c:/data/abc.jpg


인텔리센스단축키 : ctrl + space bar


헤더 파일
- include를 하기 위한 목적 파일
- 함수 프로토타입을 정의
- define 이나 다른 전처리기를 모아둠


아마도 이날까지 한 개의 cpp 파일로 구현을 해왔고, 이를 헤더와 별개 cpp로 분할해 구현하는 방식이 교육된 것 같다.


댓글 없음:

댓글 쓰기

Unity - Firebase 연동 (Analytics, AdMob)

버전 : firebase_unity_sdk_6.5.0.zip 게임에서 통계 측정 및 광고 추적을 위해 Firebase 을 연동한다. 앞서 [Unity - GPGS 와 Admob 연동 및 배포 준비 작업]  연동 이후에 작업을 진행 한다. 유니...