일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래밍
- 다이렉트X
- C++
- CommandList
- vertex
- View
- UE4
- engine
- c
- 다중표본화
- 다이렉트X 튜토리얼
- DESC
- Input Assembler
- Direct3D
- GPU
- Direct3D Init
- C언어
- Direct Init
- DirectX12
- RenderTargetView
- DirectX
- 코딩
- swapchain
- 동기화
- 게임수학
- CPU
- 다이렉트 초기화
- 전처리문
- 세팅
- DirectXTK
- Today
- Total
목록C,C++ (17)
비타Cpp
포인터는 메모리 상의 주소 값을 나타낸다. 이러한 포인터도 연산자를 통해 연산이 가능한데, 주소 값에 +,- 같은 주소 값의 덧셈 뺄셈이 가능하다. int* pNum1; int* pNum2; pNum1 = new int(100); pNum2 = pNum1 + 1; *pNum2 = 200; std::cout
모든 변수들은 선언과 동시에 RAM에 자동으로 주소값이 할당된다. 하지만 RAM은 RANDOM ACCESS MEMORY로 무작위의 주소값이 할당되는데, 이는 변수가 가지고 있게 된다. 만약 int형 변수를 하나를 int num; 이렇게 선언하면, int 는 4byte이므로 4byte크기의 공간이 할당 된다. 이런식으로 할당이 되게 되는데 초기화를 안했기 때문에 안에는 쓰레기 값이 들어가있다. 어쨌든 컴파일러는 이제 부터 num변수를 만날때마다 0x0001의 주소값을 찾아가게 되는것이다. 그리고 이 주소값은 코드에서도 접근이 가능한데, 선언된 변수앞에 &를 붙여주면 이는 해당변수의 주소값을 의미하게된다. int main() { int num; std::cout
대입연산자(=)의 피연산자중에 오른쪽에있는 피연산자를 r-value, 왼쪽에 있는 피연산자를 l-value라고 하는데, 이러한 의미도 틀리지는 않다. 하지만 이렇게 알고있기보다는 l-value를 변수 (메모리상에 지속적으로 남아있는 값), r-value를 임시값(메모리상에 남지않고 표현식 종료후에는 사라지는 값) 이라고 알아두는 편이 더 좋다. int a; //a는 int형 정수로 정의한다. a = 10; //10(r-value)은 정수 10으로 평가되고, a(l-value)에 할당된다. a = 5 + 10; //5(r-value) + 10(r-value)는 15(r-value)로 평가되고, a(l-value)에 할당된다.
const가 걸린 위치에서는 값이 변경이 안되게 하는 상수화하는 명령어입니다. const는 다양한 위치에 붙을수 있는데, 변수에서는 [const] [dataType] [const] [Pointer] [const] [VariableName] [const] [자료형] [const] [포인터] [const] [변수명] 멤버 함수에서는 [const] [dataType] [const] [Pointer] [Function(Parameters)] [const] {Function Codes} [const] [자료형] [함수명([const]매개변수)] [const] {함수 코드} 이런 식으로 붙을수 있다. 예를 들어 설명하면 1. const int ** num; 2. int * const * num; 3. int ** ..
가위 바위 보로 if문을 간단하게 사용 해봤습니다. 그런데 저희는 가위 바위 보를 정수값 1,2,3을 이용 해서 비교 연산(==, !=)을 통해 승패를 결정지었습니다. 이처럼 정수 값의 비교연산을 통해 조건분기를 나누는 조건문이 하나 더있습니다. switch라는 조건문 입니다. 사용방법은 이렇습니다. int number = 0; switch (number) { case 0 : //실행코드 break; case 1: //실행코드 break; case 2: //실행코드 break; case 3: //실행코드 break; case 4: //실행코드 break; default: //실행코드 break; } switch문의 가장 첫 괄호 안에 들어오는 수에 따라 case별로 분기를 나눠서 실행코드른 나눠 놓을수 ..
가위 바위 보 게임은 다들 아실 겁니다. 두 명이서 가위 바위 보를 내서 승부를 짓는 게임이죠. 내가 가위를 냈는데 상대가 바위를 내면 지고, 상대가 보를 내면 이기는 간단한 게임을 코드로 만들어 보겠습니다. 일단 헤더는 이렇게 해주세요. #include #include using namespace std; 이번에는 새롭게 출력만 하는 것이 아닌 콘솔에 직접 무엇을 낼지 입력도 해볼 것입니다. scanf라는 함수도 있지만 이번에는 std에 있는 cin이라는 인터페이스를 써보겠습니다. 사용방법은 아주 간단합니다. std::cin >> 입력시킨 값을 넣을 변수; 이렇게만 하면 콘솔은 cin에서 값을 입력해서 엔터를 누를 때까지 대기하게 됩니다. std는 에 정의돼있습니다. 자 그리고 제가 두 개를 다 제가 ..
앞에서 변수에 대해서 알아봤습니다. 하지만 이런 숫자 말고도 문자와 참, 거짓 도 컴퓨터는 표현할 수 있습니다. 그중에서 참, 거짓 이란 Boolean값이라고 하는데 C언어에는 따로 정의된 타입은 아니지만, 그래도 개념 자체는 있어서 #define으로 TRUE, FALSE가 정수 값으로 정의되어 있습니다. C++부터는 정식으로 bool이라는 타입명으로 취급됩니다. 일단 참이면 1, 거짓이면 0으로 취급하고 있지만 0을 제외한 모든 정수 값은 TRUE로 취급됩니다. 이러한 bool값들은 바로 조건문에서 쓰이게 됩니다. 조건문은 if문과 switch이 있는데 먼저 if문에 대해서 알아보겠습니다. if문의 사용 방법은 if(조건식 1) { 실행문 1 } else if(조건식 2) { 실행문 2 } else {..
이번에는 실수형을 보겠습니다. 실수형은 '소수점'이 있는 숫자 인데요. 0~1 사이에는 정수의 갯수는 0개 이지만, 실수에서는 무한개의 실수가 존재합니다. 이런 실수를 C에서는 float, double이라는 형태의 변수로 사용 되고 있습니다. 이 실수형 자료형도 역시 크기가 있고 범위가 존재합니다. float < double float : 4byte double : 8byte 자료형의 크기는 보시다시피 정해져있는데 0~1사이에도 무한하게 있는 실수를 어떻게 표현 할 수 있을까요? 그리고 컴퓨터 상에서 실수를 표현하려면 소수점을 표현 해야 하는데, 이 소수점을 표현 할수 있는 방식으로 "고정 소수점" 과 "부동 소수점" 두가지 방식이 있습니다. 일단 C언어에서 쓰이는 방식은 부동소수점입니다. 고정 소수점부..