inline 함수는 코드 삽입이 어떻게 되나요?
글쓴이: hugeval / 작성시간: 수, 2009/07/15 - 10:32오후
인라인함수는 함수 코드가 인라인함수 호출하는곳으로
삽입된다고 하잖습니까 그렇다면
// 1
inline int sum(int a, int b)
{
return a+b;
}
// 2
inline int sum(int a, int b)
{
int c;
c=a+b;
return c;
}
//// 메인함수
int main(void)
{
int a=3, b=5;
sum(a,b); // 3
return 0;
}
메인 함수에서 sum을 호출하는데 3번 부분에 코드가 삽입될때
함수의 지역 변수 선언문이나 return 같은거도 그대로 인라이닝 되는건지 궁금합니다
답변 부탁드리겠습니다.
Forums:
c++의 inline은 source code 단계로 inline되는 것이 아닙니다.
3 위치에 sum이 인라인 될 때 어차피 sum 함수 내부 a,b,c등의 local 변수들의 name은 inline 이전에 이미 사라지고 없습니다.
(main 함수 내 a,b 역시 binary 차원에선 이미 사라지고 없습니다.)
댓글 달기