[C++] Calling Convention

__cdecl

C C++의 기본 호출 규약이다. 스택이 호출자에 의해 정리되기 때문에 가변인자 함수를 정의할 수 있다. 오른쪽에서 왼쪽으로 스택에 인자를 삽입한다.

__stdcall

Win32 API 함수를 호출하는데 사용되는 함수호출 규약이다. 스택이 피호출자에 의해 정리된다. 오른쪽에서 왼쪽으로 스택에 인자를 삽입한다.

__fastcall

x86아케텍처에서만 적용할 수 있다. 첫번째와 두번째를 제외한 오른쪽에서 왼쪽으로 스택에 인자를 삽입한다. 첫번째와 두번째 인자는 EXC EDX레지스터에 들어간다. 스택이 피호출자에 의해 정리된다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/23/Languages/Cplusplus/calling-convention/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.