새소식

인기 검색어

게임 개발/언리얼 강의 (클라-서버)

[언리얼 MMORPG pt1] 코드의 흐름 제어

  • -

1. 분기문

스킵

2. 반복문

while, do while, for, break, continue

3. 열거형

#include <iostream>
using namespace std;

// 상수인건 알겠는데, 너무 따로 노는 느낌?
// 하나의 셋트인데?
// 경우에 따라서 어셈블리 코드를 까 보면 메모리에 변수로 올라가는 경우도 있음
// 보통은 상수로 최적화 되긴 함
const int SICCERS = 1;
const int ROCK = 2;
const int PAPER = 3;

// 숫자를 지정 안하면 첫 값음 0부터 시작
// 그 다음 값들은 이전 값 + 1
// const 보다 열거형이 더 선호됨. 메모리에 올라가지 않기 때문. (메모리상으로 더 이점이 있음)
// 모던 c++ 에서는 enum class 를 사용함 나중에 알아봄
enum ENUM_SICCERS_ROCK_PAPER
{
	ENUM_SICCERS = 1,
	ENUM_ROCK,
	ENUM_PAPER
};

// # 붙은거 -> 전처리 지시문
// 1)전처리 2)컴파일 3)링크
// #include <iostream> -> 전처리기가 iostream 파일을 찾아서 그 내용을 통째로 복사해 옴
#define DEFINE_SICCERS 1
#define DEFINE_TEST cout << "test" << endl; // 꼭 정수가 아니어도 됨. 매크로 함수처럼 사용 가능. 그냥 바꿔치기 하는거임

// 그냥 바꿔치기 하는거라서 난해한 상황이 발생할수도 있음
// 디버깅 할때도 DEFINE_TEST 라는 것은 날라가기 때문에 디버깅이 어려움
#define DEFINE_TEST2 1+2

// 따라서 define 은 c++ 프로그래머 사이에서 지양하는 것임. (사용하지 않는 것이 좋음)
// enum 을 0순위로 생각하는 것이 좋음

int main()
{
	DEFINE_TEST;
	int result = DEFINE_TEST2 * 2; // 1+2 * 2 (결과가 6이 아님)
	cout << result << endl;
}
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.