본문 바로가기
반응형

Programming102

C++ 자주 사용되는 문법 [C++] 자주 사용되는 문법 반복문 Forfor(초기식;조건식;증감식){ // 구현내용}초기식, 조건식, 증감식은 생략 가능생략 시 구현과정에서 빠져나올 수 있도록 해야한다. whilewhile(조건식){ // 구현 내용}조건식이 참일 경우 실행한다. do ~ whiledo{ // 구현 내용} while (조건식)조건식과 관계없이 최소 한 번은 실행 후 반복 조건을 검사한다.  선택switchswitch ( 기준값 ){ case 선택값: // 이 값일 때 구현 내용 break; case 선택값: // 이 값일 때 구현 내용 break; default: // 그 외 나머지}선택값을 차례대로 보면서 기준값에 해당하는 구현내용을 실행한다.break; 명령이 없을 경우 다음 case.. 2023. 9. 15.
DirectX11 Device & CreateDevice [DirectX11] Device & CreateDevice Device디바이스는 리소스를 만들고 디스플레이 어댑터의 기능을 열거하는 데 사용됩니다.각 애플리케이션에는 디바이스가 하나 이상 있어야 하며, 대부분의 애플리케이션은 하나의 디바이스만 만듭니다. D3D11CreateDevice 또는 D3D11CreateDeviceAndSwapChain 을 호출하여 컴퓨터에 설치된 하드웨어 드라이버 중 하나에 대한 디바이스를  만들고 D3D_DRIVER_TYPE  플래그를 사용하여 드라이버 유형을 지정합니다. 각 디바이스는 원하는 기능에 따라 디바이스 컨텍스트를 하나 이상 사용할 수 있습니다. DeviceContext디바이스 컨텍스트에는 디바이스가 사용되는 상황 또는 설정이 포함됩니다. 더 구체적으로, 디바이스 .. 2023. 3. 19.
DirectX11 Draw 관련 메서드 [DirectX11] Draw  관련 메서드 그리기 상태 설정 메서드IASetInputLayoutIASetPrimitiveTopologyIASetVertexBuffersIASetIndexBufferOMSetRenderTargetsOMSetBlendStateOMSetDepthStencilStateRSSetStateRSSetViewports셰이더 설정 메서드VSSetShaderPSSetShaderGSSetShaderHSSetShaderDSSetShaderCSSetShader그리기 메서드DrawDrawAutoDrawIndexedDrawIndexedInstancedDrawIndexedInstancedIndirectDrawInstancedDrawInstancedIndirect 2023. 3. 19.
DirectX11 초기화 단계 [DirectX11] 초기화 단계 DirectX 11을 사용하여 그래픽 애플리케이션을 개발하기 위해서는 몇 가지 초기화 단계를 거쳐야 합니다.  DirectX 11 디바이스(Direct3D 장치) 생성하기● D3D11CreateDevice 함수를 호출하여 DirectX 11 디바이스를 생성합니다. 이 함수는 지원되는 하드웨어 디바이스를 나열하고, 해당 디바이스 중 하나를 선택하여 DirectX 11 디바이스를 생성합니다. 스왑체인(swap chain) 생성하기● DXGI(DirectX Graphics Infrastructure) 라이브러리를 사용하여 스왑체인을 생성합니다. 스왑체인은 프레임을 출력할 후면 버퍼(back buffer)와 전면 버퍼(front buffer)를 관리하는 역할을 합니다. 후면 버.. 2023. 3. 19.
C++ Static 정적 클래스, 정적 멤버, static 변수, static함수 [C++] Static 정적 클래스, 정적 멤버, static 변수, static함수static 키워드는 4가지 유형으로 사용될 수 있다.함수의 정적 변수 (Static variable in functions, static 변수)정적 클래스 객체 (Static class objects, static 클래스)클래스 내부의 정적 멤버 변수 (Static member variable in class, static 멤버 변수)클래스 내부의 정적 함수 (Static methods in class, static 멤버 함수)static변수는 처음 실행할 때 딱 한 번 초기화 된다.프로그램 시작시 할당되고 종료시 해제된다.함수의 정적 변수 (Static variable in functions, static 변수)프로그.. 2022. 12. 20.
C++ 구조체와 클래스의 코드로보는 차이점 [C++] 구조체와 클래스의 코드로보는 차이점구조체 보기// 구조체 테스트#include using namespace std;struct _struct{ // struct의 기본 접근 지정자는 public double _double = 3.141592; // 8 byte // 되도록이면 큰 자료형이 위로 오도록 (바이트패딩) int _int = 3; // 4byteprivate : // 접근지정자의 사용이 가능함 int _pvInt = 6; // 4byte void PrivateAccessTest() { cout 구조체 struct의 기본 접근 지정자는 public이다.바이트 패딩의 효율성을 위해 큰 자료형을 위에 선언한다.클래스처럼 접근지정자 사용이 가능하다.protected접근지정자는 상속관계.. 2022. 12. 20.
C++ 바이트 패딩 (Byte Padding) [C/C++]바이트 패딩 (Byte Padding)바이트 패딩(Byte Padding)이란 클래스 (구조체)에 바이트를 추가해 CPU접근에 부하를 덜어주는 기법padding 의 사전적 정의 : (형체를 잡기 위해 안에 대는) 속, 충전재구조체나 클래스의 크기는 내부에 선언된 변수들의 크기로 결정된다고 생각되지만 실제 크기를 확인해 보면 대부분 내부에 선언된 변수 크기보다 더 큰 크기의 공간이 할당되어 있다. 이는 CPU접근을 용이하게 만들기 위한 것인데 32bit CPU는 한 번에 4byte를 읽을 수 있고 64bit CPU는 한 번에 8byte를 읽을 수 있다. 만약 int(4byte)자료형 사이에 char(1byte)자료형이 끼어 있다면 패딩이 없을 경우 CPU는 1byte로 인한 격차로 인해 2번의.. 2022. 12. 14.
C++ 구조체 (structure type) [C/C++] 구조체 (structure type)구조체란 사용자가 새롭게 정의할 수 있는 사용자 정의 타입이다.구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있다.구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것이다.구조체를 구성하는 변수를 구조체의 멤버(Member) 또는 멤버 변수(Member Variable)이라고 한다.구조체 안에 있는 것들 중 가장 큰 자리를 가지고 있는 타입이 기준 크기가 된다. (바이트패딩)구조체 정의 방법구식 컴파일러 버전에서는 struct 앞에 typedef를 넣어줘야 한다.typedef struct 구조체이름 구조체의새로운이름;구식 컴파일러 버전에서는 구조체 멤버변수를 선언할 때 초기화해줘야 한다.// 구버전typedef struct.. 2022. 12. 14.
C++ 파일 입출력 fstream ifstream ofstream (char배열, string) [C++] 파일 입출력 fstream ifstream ofstream (char배열, string) 띄어쓰기 포함 쓰기 방법은 한 줄 입력 받는 것이다char배열을 써도 되고 편리한 string을 사용해도 된다.#include #include 파일 입출력 헤더파일 #include 문자열 헤더파일만약 입력이나 출력만 할 경우#include 입력 (Input File Stream)#include 출력 (Output File Stream)//방법 1ofstream file;file.open(filePath, ios::out);//방법 2ofstream file(filePath, ios::out) 파일을 열지 못했을 때 예외처리// 예외처리 1if(file.fail()) cout #include #in.. 2022. 12. 14.
C++ 타입(형) 변환 (Type conversion, Type Casting) [C/C++] 타입(형) 변환 (Type conversion, Type Casting) 자료형 변환이란 char형을 int로 바꾸거나 int를 double로 바꾸는 식으로 자료형 타입을 바꾸는 것을 말한다.C언어에서 다른 타입끼리의 연산은 우선 피연산자들을 모두 같은 타입으로 만든 후에 수행된다.이처럼 하나의 타입을 다른 타입으로 바꾸는 행위를 타입 변환(type conversion)이라고 한다.타입 변환은 크게 두 가지 방식으로 나눌 수 있다.묵시적 타입 변환(자동 타입 변환, implicit type conversion)명시적 타입 변환(강제 타입 변환, explicit type conversion)묵시적 타입 변환(자동 타입 변환, implicit type conversion)컴파일러가 자동으로 실.. 2022. 12. 14.
C++ 한글 문자, 한글 문자열 출력 wchar_t [C/C++] 한글 문자, 한글 문자열 출력 wchar_t기존 char 형식은 ASCII 코드를 표현할 수 있는 문자 형식이다.ASCII코드는 128가지의 문자를 표현하므로 1byte의 크기로 다 표현 가능하다.하지만 한글을 표현하기에는 1byte크기로 부족하다. 2byte형식의 자료형이 필요한데, 그 크기를 지원하는 데이터 형식이 wchar_t이다. 기존 char 형식으로 한글 문자를 출력하게 된다면 컴파일러는 ‘ㄱ’의 시작 주소부터 2byte를 읽어 엉뚱한 문자를 출력하게 될 것이다.#include //표준 입출력 헤더int main(){ char ch = 'ㄱ'; printf("%c\n", ch); return 0;}2011년 ISO(국제 표준화 기구)에서 각 지역에 맞는 언어.. 2022. 12. 13.
C++ STL 컨테이너 Vector의 재할당 확인하기 [C++/STL] 컨테이너 Vector의 재할당 확인하기 컨테이너는 공간이 부족하면 자동으로 공간을 재할당 한다.크기를 정해놓지 않고 사용하는 경우가 많은데 Vector에 자료가 추가되면서 재할당 하는 빈도수가 많은 것을 확인하였다. #include #include using namespace std;int main(){ vector vec; vector::iterator vecIter; vec.push_back(0); vecIter = vec.begin(); cout 실행 결과를 보면0번 데이터를 넣을 때의 주소는 00000149BB61D950 이다. 하지만 데이터를 추가하고 나서 주소가 빈번하게 바뀌는 것을 알 수 있다.1번 째 반복 0 : 00000149BB6203D0 1 : 00000149BB62.. 2022. 12. 11.
반응형