프로그래밍/C++

#23. #define & typedef & Rand & 열거형

코딩하는상후니 2022. 7. 17. 22:09

 
*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,
};
 

본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.

'프로그래밍 > C++' 카테고리의 다른 글

#25. 값 전달  (0) 2022.07.18
#24. 함수 호출 규약 ( Calling Convention )  (0) 2022.07.18
#22. 반복문  (0) 2022.07.17
#21. 분기문  (0) 2022.07.17
#20. 유의사항  (0) 2022.07.17