Tech & IT/컴퓨터활용 Tips

inline 을 많이 쓰자 작은 함수라면 장점많고, 단점적고

해피콧 2012. 3. 22. 14:27
'); }
'); }
C, C++언어에서

인라인 장점 : 속도가 빠르다
인라인 단점? : 목적 코드가 커진다.? 아니다 작은 코드라면 목적코드도 작아진다

모든 compiler는 인라인은 default로 무시, 옵션켜야만 inline이 치환된다

cl inline.cpp /Ob1 인라인 치환해달란 옵션 

debugging할때는 어려울 수 있다. call이 안보이니까
그러면 개발은 inline옵션 안넣고 release시 inline옵션 넣으면? 된다

inline int Add1(int a, int b) {return a + b;}
int Add2(int a, int b) {return a + b;}

int main()
{
int a = 1, b = 2;
int n1 = Add1(a, b); // 기계어 코드 치환
int n2 = Add2(a, b); // 호출 즉 call
}


/////////////////////////////////////
; 13   : int n1 = Add1(a, b); // 기계어 코드 치환

mov eax, DWORD PTR _a$[ebp]
add eax, DWORD PTR _b$[ebp]
mov DWORD PTR _n1$[ebp], eax

; 14   : int n2 = Add2(a, b); // 호출 즉 call

mov ecx, DWORD PTR _b$[ebp]
push ecx
mov edx, DWORD PTR _a$[ebp]
push edx
call ?Add2@@YAHHH@Z ; Add2
add esp, 8
mov DWORD PTR _n2$[ebp], eax