Today
Total
Recent Posts
Recent Comments
Archives
05-19 10:54
«   2024/05   »
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
반응형
관리 메뉴

UD_park's IT story

[C++] 인라인 함수의 기본 개념과 사용법 본문

IT - Language/C++

[C++] 인라인 함수의 기본 개념과 사용법

kingllzn 2018. 6. 15. 09:38
반응형
SMALL

(학습 서적 이것이 C++이다에서

내용 발췌하였습니다)

 

[보기용 예제 소스 코드에서 오류 발생시에

댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]

 

 

 

이번에는 인라인 함수의

기본 개념과 사용법에 대해서

포스팅 해보도록 하겠습니다

 

인라인 함수에 대해

이야기 하기 전에

먼저 설명할게 있습니다

 

첫 번째로 매크로에 대해

간단하게 설명 드리겠습니다

 

프로그램에서 함수를 호출하면

스택 메모리 사용이 증가하고

매개변수 사용에 따라 메모리의 복사도

일어나기에 OverHead(목표달성을 위한 시간,

메모리 대역폭 등등의 자원)가 증가하는걸

막기위해 "매크로"라는 것을

사용했었습니다

 

쉽게 이야기하자면

오버헤드라는 자원을 아끼기

위해서 매크로라는 기능을

이전 C에서는 사용했었습니다

 

시간이 흘러 C에서 C++로

바뀌게 되면서 많은 것들이

바뀐것중 하나가 바로

매크로 → 인라인 함수로

바뀐것 입니다

 

일단 매크로의 소스를 보며

간단하게 설명을 드리겠습니다

 

위의 소스 코드 중에서

8번 줄에 있는 코드가 바로

매크로 입니다

 

그 매크로를 24번 줄에서

호출하여 사용하는 모습입니다

 

이처럼 매크로는 장점만큼

단점 또한 존재합니다

괄호로 표시하는 만큼

읽기 힘기 힘들기에

가독성이 나쁩니다 그리고

논리의 오류가 찾기 힘들어집니다

 

이러한 단점을 보완하고

장점을 그대로 살린것이 바로

인라인 함수 입니다

그럼 이제 인라인 함수을 예로 만든

소스코드로 설명하겠습니다

 

차이점을 파악하기 쉽게

매크로 예제와 동일한 문제로

인라인 함수를 적용 시켜 보았습니다

 

사용법은 딱히 설명드리지

않아도 바로 이해 가실거 같습니다

바로 함수의 앞에 inline만 써주면됩니다

 

이렇듯 인라인 함수는

inline 이라는 글만 빼버리면

기존의 함수와 똑같습니다

그리고 가독성도 좋고

오버헤드 또한 낮춰줍니다

 

혹시 이런 궁금증을 가진 분들이

계실 수 있을 겁니다

 

"그렇다면 왜 전부 인라인 함수로

사용하지 않는걸까?"

 

간단하게 얘기하면

코드 길이가 이정 수준 이상 길어지면

인라인 함수로 쓰는건 비효율적입니다

 

한마디로 바람직하고

이상적인 코드의 길이일때만

인라인 함수를 사용한다는 것입니다

 

이건 작성자인 우리가

몇줄인지 알아야할 필요는 없습니다

 

 

Visual Studio의 솔루션 탐색기에서

 

 

 

 

프로젝트 이름을 우클릭

 

 

속성페이지 열기

 

구성속성 에서 C/C++

최적화 선택

 

 

인라인 함수 확장

 

 

이렇게 하면 기본값인

인라인 함수로 사용하는 데

적합한 함수는 모두

인라인 함수로 만들어지게

됩니다

 

만약 적합하지 않다면

일반 함수로 컴파일 하게 됩니다

 

혹시 다른것에 대해 궁금하신게

있으시다면

댓글에 달아주세요

 

아는것이면 친절하게 쉽게

모르는것이면 또 제가 알아내서

친절하게 쉽게 포스팅해서

설명해드리겠습니다

 

이상으로 인라인 함수에

대한 포스팅을 마치겠습니다

 

 

 

반응형
LIST
Comments