Contents

Develop
2013.04.23 15:17

[c++] 인라인 함수에 대한 설명

조회 수 7112 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
간단하게 말하면 장점은 function call이 생략되는 형태로 실행되기 때문에 function call에 의한
여러 가지 오버헤드 - CPU register 백업, stack 관리 - 등을 생략하기 때문에 
간단하면서 자주 사용되는 함수에는 더 빠른 효율성을 갖게 됩니다. 

하지만 항상 더 좋은 퍼포먼스를 보장하는 것은 아닙니다. 
지나친 inline함수의 사용은 실행파일이 커지게 하고, 
이 때문에 페이지 폴트를 야기하는 원인이 되어 퍼포먼스가 떨어지게 됩니다.

C의 #define을 이용하는 것과 비슷하지만 안정성인 측면에서 inline함수가 앞섭니다.

다음은 정리된 설명입니다.

* inline함수
    - 매크로함수와 그냥 함수의 중간적인 성격을 띤 함수이다.

    - 일반적인 함수를 사용하면 필요할 때마다 호출하여 사용하므로 실행파일의 크기를
      줄일 수 있으나 제어권의 이동이 심하므로 실행 속도가 느려진다.

     - 매크로 함수는 컴파일시 전개되어 치환되므로 제어권 이동이 발생하지 않으므로
      속도가 빠르지만 데이터형 지정을 할 수가 없고 실행파일의 용량이 커지게 된다.

    - 인라인 함수는 컴파일시 통째로 매크로처럼 전개되어 속도면에서 큰 이득을 얻는다.
      그리고 데이터형 체크를 할 수 있는 함수이다.
      용량이 커지는 단점이 있긴 하지만 간단한 작업을 하는 함수의 경우에 이용하면 매우 편리하다.

* inline 함수의 제약조건
    - inline 함수 내에서는 루프문(do whie, while, for), switch, goto문을 사용할 수 없다.
    - inline 함수호출시 호출되기 전에 먼저 inline 함수가 정의되어 있어야 한다.
    - inline 함수 내에서 재귀호출을 할수 없다.
    - inline 함수는 한 수식 내에서 두 번이상 호출될수 없다.
    - 함수 포인터로 inline 함수의 주소를 취할 수 없다.
    - inline 함수는 호출방식이 아니라 치환전개방식이기 때문이다. 

영어 보시는 데에 지장이 없으시면 
http://camars.kaist.ac.kr/~jaewon/special/c++-faq/inline-functions.html
를 참조하시면 더 많은 정보가 있습니다.

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
765 Develop [ios] APNS 샘플 코드.. secret hooni 2013.06.27 0
764 Develop [ios] APNS 클라이언트 구현 (pdf) file hooni 2013.06.27 15697
763 Develop [ios] PHP로 APNS 프로바이더~ file hooni 2013.06.27 16851
762 Etc 영어 관련 토렌트 secret hooni 2013.06.25 0
761 Etc 영어 아주 쉬운 영작문 강의 01~60 secret hooni 2013.06.25 0
760 Etc 성문 종합 영어 정리된 pdf 파일 file hooni 2013.06.25 30990
759 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21271
758 Etc 영작 연습을 위한 실용영어 문장 1001개 (1~500) hooni 2013.06.21 30435
757 Etc 여러 대학 및 권위있는 기관 강좌 모음 ㅋㅋ hooni 2013.06.17 15126
756 Develop [ios] 패스(path) 앱 메뉴 스타일 secret hooni 2013.06.11 0
755 Etc 엑셀 함수 총 정리 ㅎㅎ file hooni 2013.06.05 24469
754 Develop [ios] 스터디 자료 (from 종길M) secret hooni 2013.06.04 0
Board Pagination Prev 1 ... 30 31 32 33 34 35 36 37 38 39 ... 98 Next
/ 98