[C++] InlinePROGRAMMING/04. C++2024. 4. 26. 10:45
Table of Contents
반응형
Inline 함수
C++에서 함수의 호출은 꽤 복잡한 과정을 거치므로, 약간의 시간이 걸리게 된다.
이때 함수를 실행하는 시간이 오래 걸린다면, 함수를 호출하는데 걸리는 시간은 전혀 문제가 되지 않는다.
하지만 함수의 실행 시간이 매우 짧다면, 함수 호출에 걸리는 시간도 부담이 될 수 있다.
C++에서는 이러한 경우에 사용할 수 있는 인라인 함수(inline function)라는 것을 제공한다.
인라인 함수는 호출될 때 일반적인 함수의 호출 과정을 거치지 않고, 함수의 모든 코드를 호출된 자리에 바로 삽입하는 방식의 함수이다.
이 방식은 함수를 호출하는 데 걸리는 시간은 절약되나, 함수 호출 과정으로 생기는 여러 이점을 포기하게 된다. 따라서 코드가 매우 적은 함수만을 인라인 함수로 선언하는 것이 좋다.
⚠️인라인 함수에서는 재귀 호출이 허용되지 않는다⚠️
Inline 함수 선언
1
2
3
4
5
|
inline 함수의원형
// 또는
inline 함수의정의
|
cs |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <iostream>
using namespace std;
inline int Sub(int x, int y) { return x - y; }
inline void Print(int x) { cout << "계산 결과는 " << x << "입니다."; }
int main(void)
{
int num1 = 5, num2 = 3;
int result;
result = Sub(num1, num2);
Print(result);
return 0;
}
|
cs |
위의 예제에서 Sub() 함수와 Print() 함수는 인라인 함수로 정의되어 호출된다.
보통 인라인 함수는 크기가 작으므로, 함수의 원형이 나오는 자리에 함수의 본체까지 함께 정의하는 경우가 많다.
위의 예제는 실제로는 다음과 같이 인라인 코드로 삽입되어 실행된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
using namespace std;
int main(void)
{
int num1 = 5, num2 = 3;
int result;
{
int x = num1, y = num2;
result = x - y;
}
{
int x = result;
cout << "계산 결과는 " << x << "입니다.";
}
return 0;
}
|
cs |
예제2
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
32
33
34
35
36
37
38
39
40
|
#include <stdio.h>
class Test
{
public:
void Sub(int a, int b); // 선언
public:
void Mul(int a, int b) // 선언 및 정의
{
}
void Div(int a, int b);
};
void Test::Sub(int a, int b) // 정의
{
}
inline void Test::Div(int a, int b)
{
}
inline int Add(int a, int b) // 인라인 함수
{
int c = a + b;
return c;
}
int main()
{
int d = Add(10, 20);
return 0;
}
|
cs |
출처 및 참고: TCPschool, 강의 짱잘하시는 울 유니티 선생님 수업
반응형
@HYUNJZZANG :: HyunZzang
HyunZzang의 프로그래밍 공간 / 함께 공부해요!!
도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 부탁드립니다 :)