최상단 광고

2012년 4월 16일 월요일

[C++강좌] - 1-4.인라인함수

흠... 몇분의 공백기간이 있었군요;;
잠시 웹툰보고 오느라 늦었습니다. 하핳;;

*이 강좌는 C언어를 끝냈다는 가정하에 실시합니다.

 ┌───────────────┐
---앞으로의 목차---
4. 인-라인(inline)함수
5. namespace에 대해
2-1. bool형에 대해
└───────────────┘

<지난 강좌를 살펴보고 와주세요 !! : http://blog.naver.com/owndks98o/120155689916 >

1-4. 인라인(inline)함수

인라인(inline)이란 의미를 프로그래밍적으로 보지 말고 영어처럼 해석해 봅시다.
in은 안쪽에 라는 의미를 나타내고, line은 선,줄 을 나타냅니다.
즉, inline함수란 코드안에 들어간 함수를 일컫겠군요!!

우리는 C언어를 공부하면서 매크로함수에 대해 알게되었습니다.

/*
MacroExample.cpp
*/

#include
#define ADD(X,Y) ((X)+(Y))

int main(){
std::cout<
return 0;
}



위와 같이 매크로 함수를 이용하면, 소스내에 매크로가 완전히 대치되기 때문에,
속도와 메모리상의 이점이 있을 것입니다.

위와 같이 함수의 호출이 소스내에 완전히 들어가버리는 현상 을
"함수가 inline화 되었다"
라고 합니다.

하지만 C에서는 inline함수를 만들기 위해서는, 매크로를 사용하여야 했기 때문에 함수의 정의가 까다로웠습니다.
또한 그 정의의 까다로움 때문에 프로그래밍상의 여러가지 단점이 있기도 하였지요.

하지만 C++에서는 정말 말끔하게 해결할수 있습니다.
바로, 함수의 정의 앞에 inline키워드를 붙여주는 것으로 끝나게 되지요.

/*
CppMacroExample.cpp
*/ 

#include

inline int ADD(int a,int b){
return a+b;
}

int main(){
std::cout<
return 0;
}

훨씬 간결해 짐을 느낄수 있으실 것이라 생각합니다.

하지만, 비록 C++에서 이런 편리한 기능을 제공한다고는 하나,
요즘에 나오는 컴파일러들은 더욱 엄청난 것들이기 때문에, 컴파일러가 알아서 inline키워드를 붙이기도 합니다.
또한, inline키워드를 붙여도 불필요하다고 판단되는 경우, 무시해 버리기도 한답니다.

이번강에서는 inline함수를 알아보았습니다!
다음강(1-5)에서는 namespace가 뭔지 간략하게 알아볼까요?!?!

댓글 없음: