언제 사용? : 비트 단위의 조작이 필요한 경우 비트 플래그 (Bit Flag) 1Byte는 8bit로 이루어져 있고, 바이트의 개별 비트를 "비트 플래그"라고 한다. 주의 사항 : 시프트 연산시 비트들이 왼쪽, 오른쪽으로 밀려나는데... right shift 연산시 원본값의 부호에 따라서 새롭게 왼쪽에서 생성되는 비트의 값이 달라진다... 때문에 정신건강을 위해서 비트연산시 사용하는 값을 unsigned 로 선언하여 "양(+)" 의 부호를 가지도록 설정하고 사용하자 비트 연산의 종류 : 1. bitwise not (~) 일반적인 "not (!)" 연산자와는 다르다. 단일 숫자의 모든 비트를 대상으로 0->1 , 1->0 으로 뒤바꾸는 연산을 진행한다. 101010 -> 010101 2. bitwise ..
오른값 참조 2 오른값 참조 타입을 인자로 받는 Test_RValueRef() 함수가 있다고 가정했을 때, k4의 경우 왼값이기에 인자로 들어갈 수없는건 이해가 간다. 하지만, k5의 경우 std::move() 함수를 사용하여 오른값 참조 타입으로 만들어 변수에 저장하였는데 에러가 발생한다. 오른값 참조 타입인것과 오른값 인것은 별개의 문제이다. 오른값 : 왼값을 제외한 나머지 = 단일식에서 벗어나면 사용 x 오른값 참조 : 오른값만 참조할 수 있는 타입 위의 정의를 보면 오른값은 재사용이 가능하면 안된다. 그런데 k5는 위에서 선언한 후 인자로 넣어주면서 재사용이 가능하게 되어 버린것을 알 수 있다. 때문에 정상적으로 사용하기 위해선 인자로 넣어줄 때, 다시 std::move() 함수를 사용해서 오른값..
Modern C++? C++11 부터 새롭게 나온 C++의 문법을 뜻한다. C++11 전/후로 많은 차이가 있었기에 이렇게 따로 이름을 붙인것 같다. auto 컴파일 단계에서 대입된 데이터를 기반으로 타입을 지정해준다. "형식 연역" 이라고 하며 영어로 "type deduction" 이라고 한다. 주의점 : auto 는 const 키워드와 &연산자를 무시하기에 이에 유의 해야한다. 1. const 키워드 무시 // const 무시 const int a = 1; auto c = a; c = 2; 2. & 연산자 무시 : // refer 무시 int b = 1; int& refer = b; auto d = refer; b = 2; std::cout
24/03/13 1화. Win32API 기본 (1) OS (운영체제)도 일종의 프로그램으로 컴퓨터를 켰을때 제일 처음 메모리를 점유하는 프로그램은 운영체제이다. 프로젝트 생성 : "Window Desktop Application" 으로 생성 프로젝트를 생성하면 기존의 C++ 프로젝트와 달리 처음부터 제공되는 코드들이 많다. SAL : "Source-Code Annotation Language" 의 줄임말로 "주석언어"를 의미한다. 헤더에 정의되어 있다. _In_ : 호출된 함수에 전달되고 읽기 전용으로 취급한다. _Inout_ : 호출된 함수에 전달되고 (잠재적으로?)수정된다. _Out_ : 호출된 함수는 해당 공간에 데이터를 쓴다. _Outptr_ : 호출된 함수는 해당 공간에 포인타입 데이터를 쓴다...
24/03/12 프로젝트 설정 솔루션 구성 : Client : Empty Project Engine : Static Library 솔루션 폴더 구성 : Binaries : 빌드 결과물 Client : Client Project 파일 Engine : Engine Project 파일 Intermediate : 컴파일시 생성되는 중간 결과물 (*.obj) Libraries : 외부 라이브러리 폴더 (Include,Lib) Resources : 리소스 폴더 Shaders : Shader 파일 라이브러리 추가 : DirectXTex : Texture 로딩하는 라이브러리 Engine : 직접 만든 Game Engine 라이브러리 FX11 (Effects11) : Shader를 편하게 사용하도록 해주는 라이브러리 E..