인라인은 컴파일할때 #define 처럼 호출부위에 함수 바디가 들어간체로 컴파일 한다는 뜻임. 호출속도는 빨라지는데 스태틱 메모리 효율이 안좋아짐(호출한 만큼 코드 duplicate가 생기기 때문에). 그래서 뭐 10줄 이상의 바디를 가진 함수는 inline안하는게 정석이다 이런 말들이 있었는데, 요새는 컴파일러가 하두 좋아서 알아서 최적화 다 해주니까 걱정말고 inline을 무시해도 될듯.
잼(60.241)2012-04-28 19:27
잼님 말이 맞음 인라인 함수는 함수 호출부가 함수 정의부로 대체되는거고, 인라인 아닌 함수는 실제로 분기가 일어나다는 차이임 인라인이 속도면에서 유리하지요.
아 지금 c++배우고 있는 중이야
컴파일하는 방식이 다를뿐이지 사용자 입장에서는 크게 다를거 없는걸로..
인라인은 컴파일할때 #define 처럼 호출부위에 함수 바디가 들어간체로 컴파일 한다는 뜻임. 호출속도는 빨라지는데 스태틱 메모리 효율이 안좋아짐(호출한 만큼 코드 duplicate가 생기기 때문에). 그래서 뭐 10줄 이상의 바디를 가진 함수는 inline안하는게 정석이다 이런 말들이 있었는데, 요새는 컴파일러가 하두 좋아서 알아서 최적화 다 해주니까 걱정말고 inline을 무시해도 될듯.
잼님 말이 맞음 인라인 함수는 함수 호출부가 함수 정의부로 대체되는거고, 인라인 아닌 함수는 실제로 분기가 일어나다는 차이임 인라인이 속도면에서 유리하지요.
루프없으면 무조건 인라인. 콜 스윗칭 오버헤드보다 더큰게 뭘까? 컴파일러 최적화? ;;;;
책에서 본 바로는 인라인이 선언되어도 이게 컴파일러가 딱보고 효울이 안좋다하면 인라인 호출을 쌩까버린다던데?