본문 바로가기

Development/C++

[C/C++] inline 함수에 대하여...

inline 함수(inline function)는 여러 버전의 C 와 C++ 프로그래밍 언어에서 컴파일러가 인라인 확장 수행을 요청 받는 함수이다. 다시 말해, 프로그래머는 함수를 호출하는 코드를 함수가 정의된 곳에다 생성하지 않고, 컴파일러가 완전한 함수체를 함수가 호출되는 모든 장소에 삽입할 것을 요청할 수 있다.

* inline 함수의 제약조건

- inline 함수 내에서는 루프문(do whie, while, for), switch, goto문을 사용할 수 없다.

- inline 함수호출시 호출되기 전에 먼저 inline 함수가 정의되어 있어야 한다.

- inline 함수 내에서 재귀호출을 할수 없다.

- inline 함수는 한 수식 내에서 두 번이상 호출될수 없다.

- 함수 포인터로 inline 함수의 주소를 취할 수 없다.

- inline 함수는 호출방식이 아니라 치환전개방식이기 때문이다.

장점 : 프로그램 수행 속도 향상, 함수 호출 오버헤드 감소

단점 : 컴파일 후 프로그램 사이즈 증가, 캐쉬 적중율 감소

장점과 단점이 절대적인 것은 아니며, 인라인 함수로 선언된 코드가 자주 호출 될 경우 함수 단위의 캐시히트를 살릴 수 없기때문에 오히려 퍼포먼스가 느려질 수 있다. 따라서, 간단한 작업을 하는 함수이며, 자주 호출되지 않는 경우에 사용한다.

 

 

 

 

 

 

https://archive.ph/dGw6r

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=olonelyo&logNo=221486566134 

 

[C/C++] inline 함수에 대하여...

inline 함수(inline function)는 여러 버전의 C 와 C++ 프로그래밍 언어에서 컴파일러가 인라인 확장 수...

blog.naver.com

 

'Development > C++' 카테고리의 다른 글

C++ printf 출력 형식 %c %s %d %u %e %f %g %x %o %n %x 16진수  (0) 2022.03.28
ASCII Converter  (0) 2022.03.27
|= 연산자  (0) 2022.03.27
ASCII code table  (0) 2022.03.27
C++ Pass By Reference Explained [중요]  (0) 2022.03.26