UD_park's IT story
[C++] 인라인 함수의 기본 개념과 사용법 본문
(학습 서적 이것이 C++이다에서
내용 발췌하였습니다)
[보기용 예제 소스 코드에서 오류 발생시에
댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]
이번에는 인라인 함수의
기본 개념과 사용법에 대해서
포스팅 해보도록 하겠습니다
인라인 함수에 대해
이야기 하기 전에
먼저 설명할게 있습니다
첫 번째로 매크로에 대해
간단하게 설명 드리겠습니다
프로그램에서 함수를 호출하면
스택 메모리 사용이 증가하고
매개변수 사용에 따라 메모리의 복사도
일어나기에 OverHead(목표달성을 위한 시간,
메모리 대역폭 등등의 자원)가 증가하는걸
막기위해 "매크로"라는 것을
사용했었습니다
쉽게 이야기하자면
오버헤드라는 자원을 아끼기
위해서 매크로라는 기능을
이전 C에서는 사용했었습니다
시간이 흘러 C에서 C++로
바뀌게 되면서 많은 것들이
바뀐것중 하나가 바로
매크로 → 인라인 함수로
바뀐것 입니다
일단 매크로의 소스를 보며
간단하게 설명을 드리겠습니다
위의 소스 코드 중에서
8번 줄에 있는 코드가 바로
매크로 입니다
그 매크로를 24번 줄에서
호출하여 사용하는 모습입니다
이처럼 매크로는 장점만큼
단점 또한 존재합니다
괄호로 표시하는 만큼
읽기 힘기 힘들기에
가독성이 나쁩니다 그리고
논리의 오류가 찾기 힘들어집니다
이러한 단점을 보완하고
장점을 그대로 살린것이 바로
인라인 함수 입니다
그럼 이제 인라인 함수을 예로 만든
소스코드로 설명하겠습니다
차이점을 파악하기 쉽게
매크로 예제와 동일한 문제로
인라인 함수를 적용 시켜 보았습니다
사용법은 딱히 설명드리지
않아도 바로 이해 가실거 같습니다
바로 함수의 앞에 inline만 써주면됩니다
이렇듯 인라인 함수는
inline 이라는 글만 빼버리면
기존의 함수와 똑같습니다
그리고 가독성도 좋고
오버헤드 또한 낮춰줍니다
혹시 이런 궁금증을 가진 분들이
계실 수 있을 겁니다
"그렇다면 왜 전부 인라인 함수로
사용하지 않는걸까?"
간단하게 얘기하면
코드 길이가 이정 수준 이상 길어지면
인라인 함수로 쓰는건 비효율적입니다
한마디로 바람직하고
이상적인 코드의 길이일때만
인라인 함수를 사용한다는 것입니다
이건 작성자인 우리가
몇줄인지 알아야할 필요는 없습니다
Visual Studio의 솔루션 탐색기에서
프로젝트 이름을 우클릭
속성페이지 열기
구성속성 에서 C/C++
최적화 선택
인라인 함수 확장
이렇게 하면 기본값인
인라인 함수로 사용하는 데
적합한 함수는 모두
인라인 함수로 만들어지게
됩니다
만약 적합하지 않다면
일반 함수로 컴파일 하게 됩니다
혹시 다른것에 대해 궁금하신게
있으시다면
댓글에 달아주세요
아는것이면 친절하게 쉽게
모르는것이면 또 제가 알아내서
친절하게 쉽게 포스팅해서
설명해드리겠습니다
이상으로 인라인 함수에
대한 포스팅을 마치겠습니다
'IT - Language > C++' 카테고리의 다른 글
[C++] 객체 지향과 Class의 개념 및 사용법 (0) | 2018.06.16 |
---|---|
[C++] 오버로딩(Overloading) 함수의 다중정의 (0) | 2018.06.15 |
[C++] 함수 템플릿에 대한 설명 (0) | 2018.06.14 |
[C++] 동적할당에 대한 개념과 사용법 (0) | 2018.06.12 |
[C++] namespace의 기본 개념과 사용법 (0) | 2018.06.11 |