C++ 인라인 함수는 매크로 처럼 함수가 호출되는 곳 마다 바로 구현부를 끼워넣는다고 들었습니다.
그러니 당연히 스택을 쓸 필요가 없겠지요.
하지만 자기를 다시 부르는 경우 인라인이 제대로 동작할 리가 만무합니다.
호출 되는 곳 마다 구현부를 끼워넣으면 무한대의 코드가 되겠죠 ?
물론 컴파일러가 자동으로 인라인 아닌걸로 만들던지 해서 알아서 조치를 취해주겠지만...
결과적으로 델파이서 그렇게 했을 때 결과를 장담을 못드리겠군요.
얻는 이점은 분명히 하나도 없을 것이고...
인라인 쓰신다고 생각만큼 빨라지지 않습니다. 비대화 현상으로 오히려 더 느려지는 경우도 있어요.
개인적으론 비대화 현상 때문에 5줄이 넘어가는 함수엔 인라인을 쓰지 않습니다.
다시 한 번 생각해보세요.
어떤게좋을까요? 님이 쓰신 글 :
:
:
: 델파이 5로 프로그램을 작성할 시절에 함수안의 함수( = 인라인 함수? )를 재귀호출
: 하면 어떤때는 잘 동작하지만, 때때로 오브젝트 참조등의 좀 복잡한 동작을 시키면
: 엑서스 바이어레이션을 일으켰던 걸로 기억합니다.
:
: 물론 에러나는 코드를 인라인 함수의 재귀호출이 아니고, 멤버 메서드나 일반함수의
: 재귀 호출로 바꾸어 놓으면 에러가 나지 않았구요.
:
: 그런데 지금은 델파이 7을 사용하고 있는데, 여기에서 좀 복잡한 파서를 하나 만들고
: 있습니다.
:
: 아무래도, 인라인 함수의 재귀호출이 중요하게 사용되야 할것 같습니다. 델파이 7에서
: 인라인 함수의 재귀호출이 안전한지에 대한 정보를 찾기가 쉽지 않은데... 혹시라도
: 델파이 7에서 인라인 함수의 재귀호출을 구현하고, 또 돌리고 있는 분들의 경험담을
: 좀 듣고 싶습니다.
:
: c++의 인라인 함수의 경우, 그 함수가 빨리 동작할 수 있는 이유는 표준 c++ 함수 호출
: 규약을 따르지 않고, 스택초기화 등등의 작업을 하지 않아서라고 알고 있습니다. 그러면
: 델파이의 인라인 함수의 경우는 어떤지... 도 궁금하군요.
:
: 고수분들의 고견을 부탁 드립니다.
:
:
:
|