바람이 머문 언덕

인라인 함수와 레지스트 변수 본문

컴퓨터 IT/C++ 언어

인라인 함수와 레지스트 변수

알 수 없는 사용자 2009. 12. 5. 16:31
반응형
인라인 함수는 일반 함수처럼 함수를 만들고 놓고 필요 할 때마다 호출해서 사용하는게 아니라  함수를  호출한 자리에 함수 코드를 끼워 넣어 속도 향상을 목적으로 사용 한다.
그런나  인라인 함수로 선언해도 컴파일러가 함수의 길이가 길거나 처리하는 내용이 복잡한 경우에는 그냥 보통 함수처럼 처리하는 경우도 있다.

inline int max(int a, int b)
{
     return (a < b) ?  -1 : ( a == b) ?  0 : 1 ;
}

int main( void)
{
    int a = 3; b = 5 , c = 0;
   c =  max(a, b) < 0 ?  b: (a == b) ?  0 : a ;
   return c:
}

위와 같이 선언을 해주었을 때 max 함수를 main 함수에서 호출하는게 아니라 max 함수의 코드를  
main 함수에 끼워 넣게 된다.
프로그램의 크기보다 속도가 중요시 될 때 사용하면 된다.

비슷한 기능으로 register라는게 있는데 변수를 처리시 cpu 레지스터를 이용해 변수의 처리 속도를
향상하는데 목적이 있다.

register int i;  // 선언 예

이 키워드도 선언 했다고 무조건 다 레지스터로 처리 되는 건 아니다.