-
Overhead를 줄이기 위한 인라인 함수란? Inline Function개발 언어/Embedded C 2023. 5. 9. 23:36반응형
정의
인라인함수(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반응형'개발 언어 > Embedded C' 카테고리의 다른 글
임베디드에서 오버헤드(Overhead)란? (0) 2023.05.09 비트연산자: |= &=연산자는 무엇인가요 (0) 2022.10.12 C언어 물음표? 연산자, 삼항연산자 (0) 2022.10.07