목록전체 글 (156)
승쨩개발공부
열거체 사용자 정의 자료형이다. 상태 값 지정 시 주로 사용된다. TextRPG 에서 Combat함수로 반환하는 상태에 따라 분기를 수행한다. -> 승리, 패배, 도망 하지만 반환 값 들이 늘어난다면? ex) IDLE, WALK, ATTACK, RUN, JUMP, FALL, DEAD ... 등 이러한 값들이 점점 늘어난다면 switch문 같은것을 수행할떄 상수만으로 판단이 어렵다. 이 경우, 열거체를 사용해서 판독하자. 열거체의 정의 1. enum 자료형이름 { 열거자, 열거자 , 열거자 } 2. enum 자료형이름 { 열거자, 열거자, 열거자 } 열거자 상수의 성질을 가진다. 사용자가 임의로 수정할 수 있지만, 수정하지 않을 경우 좌측부터 0으로 시작하여 1씩 증가한 값을 가지게 된다. 열거체 선언 e..
입출력(IO) 입력과 출력. 주체에 따라 입출력의 위치가 바뀐다. 프로그래밍에서 주체는 cpp파일, 실행파일이 주체가 된다. 입력 주체(파일)가 데이터를 받아오는 것. 출력 주체(파일)가 데이터를 내보내는 것. 입력 장치 : 키보드, 마우스 등 출력 장치 : 모니터, 스피커 등 스트림(Stream) 가상의 통로. 프로그램과 키보드, 프로그램과 모니터는 서로 연결되어있지 않다. 이러한 장치들을 서로 연결시켜주는 것이 스트림(통로)이다. 표준 스트림 stdin : 표준(std) 입력(in) 스트림(stream). 기본 키보드 대상 stdout: 표준 출력(out) 스트림. 기본 모니터 대상 stderr: 표준 오류(err) 스트림. 기본 모니터 대상 버퍼(Buff) 스트림 중간에 있는 메모리 블록 데이터 송..
메모리 구조 컴퓨터의 운영체제는 프로그램 실행을 위해서 메모리 영역을 제공한다. 메모리 영역의 구조는 CODE, DATA, HEAP, STACK 4가지 영역으로 이루어져 있다. CODE 영역 코드 영역은 말 그대로 실행하는 프로그램의 코드가 저장되는 영역이다. 영어로 텍스트 영역이라고도 불린다. CPU 는 이 코드 영역에 저장된 명령어들을 처리하게 된다. (함수 코드는 코드영역의 바이너리 형태로 저장된다) DATA 영역 데이터 영역은 프로그램의 전역 변수와 정적 변수(static 변수)가 저장되는 영역이다. 메모리의 할당 시점은 프로그램 시작시 할당되며, 프로그램 종료시 소멸 된다. HEAP 영역 힙 영역은 프로그래머가 직접 메모리를 관리할 수 있는 영역이다. 프로그래머가 원하는 시점에 메모리를 할당할 ..
동적할당 사용자가 원할 떄 메모리에 등록하고, 사용자가 원할 떄 메모리에서 해제하는 것. Heap 영역에 등록이 된다. malloc() void* : 할당할 메모리의 시작 주소를 반환 -> 단, 시작 주소부터 몇 bytes를 사용할 것인지, 어떤 데이터로 다룰 것인지 모르는 상황이다. -> 이러한 문제를 해결하기 위해 형 변환을 진행해야만 한다. size_t _size : Heap 영역에 몇 byte 크기로 메모리를 예약할 것인지 전달. Heap 영역에 메모리를 할당 malloc(); Heap 영역에 4bytes만큼 메모리를 할당 malloc(4); // Heap 영역에 4Bytes만큼 메모리를 할당. Heap 영역에 4bytes만큼 메모리를 할당해줘 이후, 반환되는 시작 주소를 int*형으로 바꿔줘 형..
텍스트 RPG #include using namespace std; typedef struct tagInfo { char szName[16]; int iAtt; int iMaxHp; int iHp; }INFO; // 플레이어 정보 구조체 생성 INFO* Create_Object(char* _pName, int _iAtt, int _iMaxHp); // 오브젝트를 만드는 함수 INFO* Select_Player(); // 플레이어를 선택하는 함수 void Progress(INFO* _pPlayer); // 전체 흐름 함수 void Render(INFO* _pPlayer); // 플레이어 정보 함수 int Combat(INFO* _pPlayer, INFO* _pMonster); // 전투 함수 // 메인 함..