일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PHOTON
- 게임은 문화
- handtracking
- C언어
- 게임
- MacFilter
- pragmaonce
- PointableCanvasModule
- VR
- p515
- Unity
- 메모리 단편화
- 캐시 메모리 사상
- 파일패킹
- 동적 힙
- 캐스팅연산자
- linux
- 온라인
- OculusInteractionSamplesRayCanvas
- 유니티
- 메모리
- 2D
- js
- 5G에그
- VR플랫폼
- 게임제작
- C++
- TCP
- 게임개발
- DAIVerse
- Today
- Total
목록C++ (21)
kunyoungparkk
라이브러리: 여러 프로그램에서 자주 사용하는 함수와 데이터들을 실행이 가능한 바이너리 형태로 묶어놓은 파일 - 정적 라이브러리(Static Linked Library, SLL): 실행파일 안에 라이브러리를 하나로 묶인다는 특징. 정적 라이브러리 파일(*.lib)을 만들고, 이 파일을 사용하는 측에서 헤더파일과, #pragma comment 혹은 프로젝트 속성 창의 링커-입력-추가종속성에서 라이브러리 경로를 입력하면 된다. 실행 파일을 만들 때 링커가 .lib 파일과 컴파일된 *.obj 파일을 링크하여 실행파일을 만들어낸다. -동적 라이브러리(Dynamic Linked Library, DLL): 실행파일 안에 포함되지 않고, 프로그램 실행 시에 참조된다. 따라서 실행 파일의 크기를 상대적으로 작게 만들고,..
1. auto 키워드 : 타입을 추론(type deduction)하는 역할을 한다. 기본 auto는 const, &(참조) 를 무시하기때문에 조심해야한다. 가독성이 나빠지기 때문에, 타이핑이 지나치게 길어지는 경우에만 사용한다. 2. 중괄호 초기화 stl vector와 같은 Container에서 유용하게 사용할 수 있다. 축소 변환을 방지한다. (int > double 불가능) 만든 클래스에서 중괄호 초기화를 통한 생성자를 받아주고 싶다면, initialize_list를 인자로 하는 생성자를 정의해야 한다. 이 때, 다른 생성자보다 initialize_list 생성자가 우선순위가 더 높으므로, 다른 생성자가 무시될 수 있다. (주의!) 3. nullptr 그저 0의 의미를 갖는 NULL과 다르게, nul..

const는 변수를 상수화시켜주는 키워드이다. (msdn왈, const 변수의 값이 상수임을 지정하고 프로그래머가 수정하지 못하도록 컴파일러에 지시하는 키워드) 그렇다면, const 변수가 선언된 메모리를 참조해서 값을 바꾸면 어떻게 될까? int main() { const int a = 5;//a const로 선언 int b = 4;//b 변수 선언 int* c = &b; c= c-2;//포인터 c로 a의 메모리 영역을 가리키게 한다. *c = 2;//a의 메모리 공간을 2로 바꾼다. printf("%d\n", a);//a값을 출력한다. printf("%d\n", *c);//c 포인터가 가리키는 값을 출력한다. return 0; } 이 코드를 실행하면, 실제로 메모리 공간이 바뀐다. 그러나, 컴파일러에..

소켓 API 정리 SOCKET socket(int af, int type, int protocol) : 소켓 생성 인자: af: AF_INET(IPv4), type: SOCK_STREAM(TCP), SOCK_DGRAM(UDP), protocol: 0(TCP,UDP) 반환: 소켓 생성 int closesocket(SOCKET s) : 소켓 닫기 인자: s: 닫을 소켓 반환: 성공: 0, 실패: SOCKET_ERROR int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData) : Winsock DLL 사용 시작 인자: wVersionRequested(버전.MAKEWORD(2,2)), lpWSAData(WSADATA 변수의 주소) 반환: 성공:0, 실패:오류코드..
클래스나 함수에 템플릿을 이용하여 여러 자료형에 대해서 동일한 작동을 하게 만들 수 있다. 보통 자료구조에서 잘 사용된다. 컴파일 과정에서 Call이 일어난 해당 템플릿 타입에 대한 함수가 실제로 생성된다. 따라서 헤더파일과 cpp파일로 선언 / 정의를 나눌 수 없다. 또한 템플릿 코드 블럭 내에서는 실제 함수가 아니기 때문에 인텔리센스가 작동하지 않는다. 템플릿 선언시, template 이런식으로 매개변수처럼 활용할 수도 있다.
C++로 개발할 때는, 형 변환시에 C스타일의 괄호 대신 형 변환 연산자를 사용하는 것이 바람직하다.형 변환 연산자컴파일 타임런 타임dynamic_cast업캐스팅/다운캐스팅 허용, 클래스 타입만부모 -> 자식 캐스팅의 경우, 실제로 캐스팅 가능하다면 허용 (다운캐스팅)static_cast업캐스팅/다운캐스팅 허용, 원시 타입 / 클래스 타입 모두 가능xreinterpret_cast (=C 스타일)모두 허용xconst_castconst를 붙이거나 뗀다.x 가장 많이 사용하는 static_cast와 dynamic_cast의 차이점은런타임에 다운캐스팅이 가능한지 검증을 하느냐, 마느냐다. (원시 타입 지원 여부도 다르다.) static_cast는 잘못된 다운캐스팅이어도 컴파일이 된다.그러나 dynamic_cas..