어떤 프로그래밍 책에서 #pragma instrinsic 명령으로 math.h 내에 있는 함수들의 속도를 향상시킬 수 있다는 내용을 읽었다 책에서는 그냥 instrinsic을 사용하면 속도가 향상된다고 쓰여 있었고 삼각함수를 빨리 구하기 위해 삼각함수 table을 사용하는 방법도 intrinsic(cos, sin, tan)을 하면 소용이 없다 라는 뉘앙스의 설명이 있었다 #pragma intrinsic이 대체 뭐길래 이런 마법같은 일을 하는 것일까 #pragma 명령 전저리기 명령. 사전에 컴파일러에게 명령을 내릴 수 있다. #pragma intrinsic 사용법 #pragma intrinsic(func1, func2, ...) 설명 인자 목록에 들어있는 함수를 컴파일러가 판단한 후 inline 또는 f..
코딩을 하면서, 다른사람의 코드를 보면서 nullptr을 참 많이 보고 썼는데 이게 무엇을 뜻하는 것이고 무엇을 할 수 있는지 정확히 모르고 있었다 nullptr이란? c++11에 추가된 키워드 null pointer를 가리킨다 생긴 이유 기존의 NULL이 0L이어서 포인터와 그냥 정수를 구분 하지 못하여 생기는 문제들을 보완하기 위해 만들어졌다 장점 void func(int val);void func(int *p); 위처럼 선언되어있는 두 함수가 있을 때 func(NULL); 으로 호출하면 int로 판정되어 첫번째 함수가 호출되었지만 nullptr을 사용하면 포인터로 판정되어 두번째 함수가 호출된다
어떤 프로그래밍 책(제목이 기억이 안난다 나중에 찾아서 수정하자) 에서 list를 순회할 때 처음 보는 방법으로 탐색하는 것을 보았다. iterator를 사용하는 것이 아니라 그냥 해당 list 자료형 포인터를 사용해서 탐색하는 방법이 굉장히 좋아보였다. std::list std::list intList; 기존 방법 for(std::list::iterator it = intList.begin(); it != intList.end(); it++){(*it)->add(1);} 향상된 for문을 이용한 탐색 for (int *it : intList){it->add(1);} for each문을 이용한 탐색 for each(int* i in intList){ i->add(1);} 향상된 for문을 사용하는 방법과..
함수 포인터란?함수를 가리키는 포인터 장점함수를 generic하게 사용할 수 있다.단점코드의 가독성을 떨어뜨릴 가능성이 있다. 문법반환형 (*사용할 이름)(매개변수1, 매개변수2, ...); 예제int add(int a, int b); int main(){ int (*func)(int,int); // 함수 포인터 int result; func = add; result = func(3,4); cout
클래스 전방선언이란?헤더파일에서 헤더파일을 포함시키는 행위가 컴파일 시간을 증가시키기 때문에 이를 막기 위해 포인터 객체를 선언할 때에는 클래스 선언 전에 필요한 클래스를 명시하여 헤더파일의 중복을 막을 수 있다. 방법ObjectA.h ObjectA.cpp ObjectB.h ObjectB.cpp로 구성되어 있다고 가정할 때 ObjectB 클래스에서 ObjectA가 필요하다면// ObjectB.h // #include "ObjectA.h" // 생략 가능 class ObjectA;class ObjectB{private:ObjectA *objA;// ObjectA objA; // 불가능...단 헤더파일을 포함하지 않아, 클래스에 대한 정보가 없기 때문에 포인터 객체만 사용 가능하다.
맴버 이니셜라이저란?- 생성자가 실행되기 전에 먼저 실행되는 명령class A{private:int a;int b;public:A():a(10){ // 생성과 동시에 초기화b = 20; // 생성이 된 후 초기대입}}; 기능 1. const 맴버변수 & 레퍼런스 변수 초기화class B{private:int a;const int b;int& c;public:B():a(10), b(20), c(a){ // 초기화}}; 2. 부모 클래스의 생성자 호출- 상속 관계인 클래스의 생성 순서는 부모->자식 순서로 되야한다class A{public:A(int a){}};class B : public A{public:B():A(5){ // B의 생성자가 실행되기 전에 A의 생성자 호출}};
- Total
- Today
- Yesterday
- 운영체제
- rxswift
- mongoDB
- 자료구조
- ue4
- machine learing
- Spring
- swift
- Cocos2d-x
- Git
- OS
- SHADER
- C++
- Java
- database
- 알고리즘
- 드라마
- 데이터베이스
- 수학
- C/C++
- 국내여행
- DesignPattern
- SOCKET
- game
- C
- scala
- winsock
- ios
- JSP
- SwiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |