본문 바로가기

공부/C, C++38

게임 개발에서 i++이 아니라 ++i를 사용하는 이유 게임 개발에서 i++이 아니라 ++i를 사용하는 이유 게임 개발을 하다 보면 반복문을 돌 때 i++이 아닌 ++i로 작성한 코드를 많이 보게 될 것이다. 그 이유는 아래와 같다. 즉 i++은 깊은 복사, ++i는 레퍼런스 반환. i++일 때는 복사 비용이 증가하기 때문에 해당 이터레이터의 규모가 클수록 성능 저하를 일으킬 수 있다. 실제 코드로 살펴보자. 기본 자료형의 연산자 오버로딩은 코드를 볼수가 없어서 stl vector 연산자 오버로딩 코드를 가져왔다. _Inc() 함수는 increase라서 값 더해주는 함수라고 생각해두고, 코드만 보면 전위는 레퍼런스 연산자로 그대로 객체에 값을 더해주고, 후위는 임시 객체를 만들어서 주는걸 볼 수 있다!! 사실 int와 같은 기본 자료형은 ++i를 안써도 최적.. 2023. 11. 2.
[c++기초] #include <iostream> 헤더파일을 알고 싶었다. #은 전처리기다. 전처리기는 컴파일을 시작하면 우선적으로 처리한다. 씹어먹는 C++ - 공부 링크 참조 : https://modoocode.com/319 씹어먹는 C++ - modoocode.com 컴파일이란 우리가 비주얼 스튜디오나 어디선든지 소스코드를 작성하면, 그것이 실행 파일로 변환되기 위해서 필요한 과정들. 1. #이 붙은 전처리기 매크로 처리 (전처리 PreProcessing) 2. 작성한 소스 파일들을 어셈블리 명령어로 변환하는 컴파일 단계 (compile) 3. 어셈블리 코드들을 실제 기계어로 이루어진 목적 코드로 변환하는 어셈블 단계 (Assemble) 4. 각각의 목적 코드들을 모아 하나의 실행파일로 만들어주는 링킹 단계 (Linking) C는 .h를 붙여서 헤더 파일 확장자가 있다. .. 2023. 5. 9.
[WinAPI] 글자(텍스트) 출력, 글자 색 변경, 글자 배경색 투명하게 [WinAPI] 글자 출력, 글자 배경 투명하게, 글자 색 변경, 1. 글자 출력 글자를 출력하는 방식은 여러 가지가 있지만 이 포스팅에서는 TextOut을 썼다. TextOut(_dc, (int)(vPos.x)+20, (int)(vPos.y) + 20, str, 1); 인자로 TextOut( HDC, x좌표, y좌표, 출력할 문자열에 대한 포인터, 문자열의 길이)이다. BOOL TextOut(HDC, int nXStart, int nYStart, LPCTSTRlpString, int cchString) 내 코드에서 HDC는 _dc여서 위처럼 적었다. 자세한 건 TextOut함수 검색해보자. 단순히 str에 TEXT("Hi!"), 또는 L"Hi!"을 입력해도 된다. 2. 글자 배경 투명 기껏 글자를 출력.. 2022. 11. 18.
[C++] 싱글톤 패턴(2) - 데이터 영역에 객체 생성 방식 [C++] 싱글톤 패턴(2) - 데이터 영역에 객체 생성 방식 이번 포스팅은 싱글톤 패턴 2로 이전 포스팅과 다른 방식으로 싱글톤을 구현한다. 이전 포스팅 링크이다. 읽고 오길 바란다. https://syrang.tistory.com/87 [C++] 싱글톤 패턴(1) - 동적 할당 방식 [C++] 싱글톤 패턴(1) - 동적 할당 방식 오랜만에 포스팅을 쓴다. 최근에 디자인 패턴중 하나인 싱글톤 패턴에 대해 배웠다. 역시 기록해두는 일이 머릿속에서도 정리가 잘되고 기억이 오래 남는 syrang.tistory.com 1. 이번에도 똑같이 객체의 생성자와 소멸자를 private로 설정해준다. // GameEngine.h class GameEngine { private: GameEngine(); ~GameEng.. 2022. 9. 8.
[C++] 싱글톤 패턴(1) - 동적 할당 방식 [C++] 싱글톤 패턴(1) - 동적 할당 방식 오랜만에 포스팅을 쓴다. 최근에 디자인 패턴중 하나인 싱글톤 패턴에 대해 배웠다. 역시 기록해두는 일이 머릿속에서도 정리가 잘되고 기억이 오래 남는 것 같다. 본 포스팅은 발상 => 문제발생 => 다음 발상 => 문제 발생 => 해결 느낌으로 진행된다. 순서대로 차근차근 따라 해보자. 0. 싱글톤 패턴? : 싱글톤 패턴은 해당 클래스로 만들 수 있는 객체를 단 1개로 제한하는 방식을 말한다. 근데 객체의 개수는 1개지만 어디서든 쉽게 접근해서 호출할 수 있어야 한다. 1. 가장 먼저 떠오르는 방식은 생성자를 숨기는 것이다. (private) GameEngine이라는 클래스가 있다고 가정하자. class GameEngine { // GameEngine.h 파.. 2022. 9. 8.