본문 바로가기

<CPP>26

13. 포인터(Pointer) 다른 것들도 마찬가지지만 포인터는 특히 자주 수정될 예정이다. 구름 속에서 손을 젓는 기분으로 사용하고 있는데 이상하게 코드는 작동한다.. 변수 주소를 저장하는 변수 CPP이 게임 개발에서 아직도 현역인 이유는 바로 이 포인터 때문일 것이다. C부터 이어진 포인터의 개념 자체는 대단히 짧고 명료한데 단지 변수 주소를 저장할 뿐이다. 그 이상의 기능도 그 이하의 기능도 존재하지 않는다. 문제는 이 기능을 응용하는 경우의 수가 엄청 많고 거의 대부분의 다른 기능들과 융합할 수 있다. 조금은 복잡해 보이는 아래의 코드를 살펴보자. ▼ 포인터의 기본적인 예시 int iValue = 10; wprintf(L"== iValue 값 ==\n"); wprintf(L" iValue[%p] = %d\n\n", &iValu.. 2021. 1. 14.
12. 열거형(Enum) 무조건 연속적으로 정의하는 열거형 ▼ enum 예시 enum class CharacterState { IDLE = 0, WALK, RUN, JUMP, ATTACK }; CPP에는 열거형에는 Enum과 Enum Class 가 있다. Enum Class는 CPP 11에서 추가된 기능으로 Enum의 기능에서 namespace의 기능을 더한 것이라고 한다. 즉 enum들끼리 보다 정확하게 구분 짓는데 도움을 줍니다. 정확한 예시를 위해 아래의 코드를 살펴보자. ▼ 기존 enum의 namespace 문제 enum RAINBOW_COLOR{ RED, ORANGE, YELLLOW, GREEN, BLUE, INDIGO, PURPLE }; enum COLOR{ RED }; int main() { int color = R.. 2021. 1. 14.
11. 고정 크기 배열(Array) 가로로 늘여놓다, 배열 ▼ CPP에서 배열 코드 #include #include int main() { std::array arr = {0, 1, 2, 3, 4}; for (int i = 0; i < arr.size(); i++) { printf("ARR[%d] = %d\n", i, arr[i]); } return (0); } C에서 사용하는 내장 고정 배열도 CPP에서 사용할 수 있지만 권장 사항은 아니다. CPP 11 이후에서는 표준 라이브러리에 포함된 의 std::array를 사용하기를 권장한다. 기존의 내장 고정 배열과 비교해서 메모리를 덜 먹으며 함수에 전달될 때 포인터로 형 변환되지 않는다는 장점이 있다. 고정 크기 배열 선언 ▼ std::array의 선언 방법은 크게 다르지 않다. #incl.. 2021. 1. 13.
10. 상수 항상 고정된 수, 상수 ▼ CPP에서 상수 예제 int main() { constexpr int CONST_INT = 4; CONST_INT = 6; // ERROR return (0); } 상수는 이름에서도 알 수 있듯이 '항상 고정된 수'를 저장할 때 사용한다. 그렇기 때문에 한번 지정된 값을 변하지 않는 불변성을 가져야 한다. CPP에서 상수는 크게 Const와 Constexpr 두개로 나뉜다. Const(constant) ▼ CPP에서 Const 예제 #include void Print(const int num) { printf("%d\n", num); } int main() { Print(4); return (0); } Const는 런타임 상수로 초깃값을 런타임에서 아는 경우 사용한다. 대부분 .. 2021. 1. 13.