일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조
- Nebula
- C++ gui
- C++
- 운영체제
- LOB
- C++ library
- 코딩
- tour of go
- 공룡책
- 리듬게임
- OS
- gui
- JUCE library
- JUCE라이브러리
- 프로그래밍
- Docker
- a tour of go
- go
- C언어
- 백준
- 알고리즘
- JUCE 튜토리얼
- 연결리스트
- JUCE
- go channel
- C++ gui 라이브러리
- c++ heap
- vim-go
- BOJ
Archives
- Today
- Total
CafeM0ca
[C++]inline 본문
반응형
인라인 함수는 함수와 다르게 코드를 대체한다. 뭔소린가 싶지만 루틴을 보면 안다.
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 | #include<iostream> using namespace std; //선언과 정의 둘중 한 곳에서 inline 키워드를 함수 타입 앞에 써주면 된다. inline void hi() { cout << "hi\n"; } void hello() { cout << "hello\n"; } int main() { hi(); hello(); return 0; } //위 아래는 같다. #include<iostream> using namespace std; void hello() { cout << "hello\n"; } int main() { cout << "hi\n"; hello(); return 0; } | cs |
인라인 함수로 선언된 코드를 호출되는 부분에 그대로 대체하는 것이다.
일반 함수는 그 함수로 이동하는 점에서 다르다.
일반 함수가 호출되면 함수의 주소로 이동했다가 돌아와야하는데 인라인 함수는 이 과정이 없기 때문에 좀 더 빠르다.
인라인 함수가 처리하는 시간이 길다면 별 이득이 없다.
우리가 π를 3.14159265359로 쓰지않고 3.14로 사용하는 것 처럼 인라인 함수가 처리시간이 커지면 별 차이가 없기 때문이다.
+ 최근 컴파일러는 똑똑해서 알아서 inline 해주거나 소스코드가 길면 inline을 빼준다. 그니까 그냥 안써도 무방..
inline member data
class 안에 data멤버로 inline을 삽입할 수 있다.
class A
{
public:
static inline int a = 0;
};
이렇게 함으로써 얻는 이점은 소스 파일에 공간을 할당할 필요가 없다.
소스파일의 int A::a; 가 inline으로 인해 지워진다.
반응형
'Programming > C++' 카테고리의 다른 글
[C++]템플릿 (0) | 2018.01.03 |
---|---|
[C++] 런타임 과정에서의 입력 값 (0) | 2017.12.02 |
[C++]함수 포인터 (0) | 2017.11.29 |
[C++]cctype 라이브러리 (0) | 2017.11.08 |
[C++11]range for문 (0) | 2017.11.08 |
Comments