*ifndef / endif
#ifndef _PARAMS_HLSLI_ => ifndef => 이 부분이 define 되지 않았으면,
#define _PARAMS_HLSLI_ => 아래부분을 추가해주세요.
...
#endif
=> 헤더파일로 사용하겠다.
*define ( 코드를 바꿔치기하는 개념 )
=> 전처리기
#include <iostream> => (<iostream> 이라는 파일을 찾아서 해당 내용을 복사해주세요.)
=> 빌드 순서
1. 전처리 ( 준비운동 ) <<- 이 과정에서 '#' 붙은 키워드들 실행
2. 컴파일 ( 통역사 )
3. 링크 ( 결과물을 엮어서 만들어내는 작업 )
#define DEFINE_SCISSORS 1
#define DEFINE_TEST cout << "Hello World" << endl;
*typedef (타입정의가 먼저 옴. )
typedef int BIGINT;
typedef double BIGDOUBLE;
*Using => C++ 11 문법 ( typedef 의 상위호환 )
using BIGINT = int;
using BIGDOUBLE = double;
typedef int(Knight::*PMEMFUNC)(int, int);
using UPMEMFUNC = int(Knight::*)(int, int);
*Typedef 와 #define 의 차이점은 무엇인가??
#define 은 단순 치환.
typedef 는 새로운 자료형 선언 가능.
*rand
=> 컴퓨터에서는 랜덤이란 개념이 존재하지 않는다.
=> '어떻게' ??
'난수생성기'
어떤 하나의 숫자를 기반으로 다음 숫자를 연상하는 일련의 과정
time(0)
=> srand 로 seed 값을 계속해서 바꾸어주어야 하는데 현재시간을 넣어서 계속해서 바뀔수 있도록 함.
=> 계속해서 누적해 나가는 시간 필요.
=> srand 를 사용하지 않으면 seed = 1
=> 최초 1회만 선언
srand( time(0) ); // 시드 설정
rand(); // 0 ~ 32767
int value = 1 + rand() % 3; // 1 ~ 3
*time
*열거형
=> 숫자를 지정 안하면 첫 값은 0 부터 시작
=> 그 다음 값들은 이전 값 + 1
enum ENUM_SRP
{
ENUM_SCISSORS = 1,
ENUM_ROCK,
ENUM_PAPER,
};
본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.