Window Course/C++
인라인함수
Mr.kkang
2010. 11. 2. 08:34
인라인 함수는 실행속도가 빠르다.
보통 함수의 실행은
1.인수의 값을 순서대로 스택에 밀어 넣는다.
2.함수가 복귀할 번지를 저장한다.(바로 다음 번지는 스택에 저장)
3.함수가 정의 되어 있는 번지로 점프해서 제어권은 함수가 갖는다.
4.함수는 스택에 자신의 지역변수를 위핸 공간을 만든다.
5.함수의 코드를 수행
6.리턴값을 넘긴다.
7.복귀 번지로 리턴
8.스택 정리
위와 같이 복잡한 단계를 거쳐야 함수 하나가 수행되는 것이다.
그러나 인라인함수는 이와 다르게 함수의 호출부에 함수의 실행 부분이 있는 것이다.
그러면 굳이 스택을 지정해주고 다음 실행될 번지를 지정하고 함수실행후 돌아오는 번거로운 작업 필요없이
함수의 호출시에 스 함수가 실해되게 하는 것이다.
그러나 이렇게 만들경우에 실행파일이 커지는 단점을 가지고 있다.
그렇기때문에 인라인 함수를 쓰는 경우는 아주 자주 사용되는 간단한 함수를 사용하는 것이다(rand()같은..)
인라인 함수는 함수의 원형과 정의부에 inline키워드를 써워야 한다.
원형과 정의부가 한 파일 안에 있다면 한곳에만 써도 되겠지만 header파일로 나눌경우엔 꼭 둘다 써줘야 한다!