음...
델파이에서는 기본적인 Calling Convention이 fastcall이지만..
C++Builder에서는 cdecl이 기본 Calling Convention입니다.
프로젝트 옵션에서 기본 Calling Convention을 바꿀수 있지만
바람직한것은 아닌것 같구..
개인적으로는 fastcall 을 일부터 모두 타이핑합니다.
그럼..
이경문 님이 쓰신 글 :
: 요즘 컴파일러는 함수간의 calling 방식을 자체적으로 최적화를 해 주는 것이 일반적입니다. 예를 들면 inline function의 아니라 하더라도 컴파일러가 코드 최적화를 하면서 inline이 빠를 것이라고 판단되면 컴파일러가 알아서 해당 함수를 inline으로 넣어 버리죠.
:
: profile guided optimization을 살펴 보시기 바랍니다.
:
: http://en.wikipedia.org/wiki/Profile-guided_optimization
:
: __fastcall은 함수간의 파라미터를 전달하는 방법중의 하나이며, 델파이에서 기본적으로 사용하는 calling convention이기 때문에 C++ Builder에서 많이 보이는 것입니다. 굳이 함수를 정의할 때 반드시 __fastcall을 넣을 필요는 없습니다.
:
: 도대체 님이 쓰신 글 :
: : __fastcall 레지스트리에 매개변수를 등록해서 함수호출 속도를 빠르게 하는 함수호출 방식이라고 알고 있습니다.
: :
: : 그냥 별 생각없이 거의 모든 함수에 __fastcall을 붙여서 쓰고 있습니다.
: :
: : __fastcall을 사용할 때 특별히 신경써야될 사항 같은 건 없는지 궁금합니다.
|