ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Overhead를 줄이기 위한 인라인 함수란? Inline Function
    개발 언어/Embedded C 2023. 5. 9. 23:36
    728x90
    반응형

    정의

    인라인함수(Inline Function)는 함수 호출 시, Overhead를 줄이기 위한 C/C++의 기능입니다.

    인라인 함수는 함수가 호출되는 대신, 함수 코드가 직접 호출문 위치에 삽입되어 컴파일됩니다.

    따라서 함수 호출 시에 발생하는 Overhead를 줄일 수 있습니다.

     

    작성방법

    인라인 함수는 일반적인 함수와 마찬가지로 작성하는데, 함수 선언에 'inline' 키워드가 추가되어야 합니다.

     

    아래는 일반적으로 함수를 작성하는 방법입니다.

    int add(int x, int y){
        return x+y;
    }

    int main(){
        int a = 10, b = 20;
        int c = add(a, b);
        return 0;
    }

     

    인라인함수로 만들 경우 아래와 같이 작성합니다.

    inline int add(int x, int y){
        return x+y;
    }

    int main(){
        int a = 10, b = 20;
        int c = add(a, b);
        return 0;
    }

     

     

     

    제약 사항

    인라인 함수는 제약사항이 있습니다.

    일반 함수와 다르게, 함수 내에서 다른 함수를 호출할 수 없습니다.

    또한, 반복분, Switch 문 등을 사용할 때도 일부 제한이 있습니다.

     

    장단점

    장점 : Overhead를 줄이는데 도움이 됩니다. 특히 작은 크기의 함수를 빈번히 호출하는 경우에 효과적입니다.

    단점 : 코드 크기가 증가하며, 코드 중복으로 인한 캐시 부적중(Cache Miss)등의 성능 문제가 발생할 수 있습니다.

     

     

    728x90
    반응형

    댓글

Designed by Tistory.