본문 바로가기

프로그래밍/C++

함수 호출 규약

함수 호출 규약

 : 함수 호출 시 전달되는 인자의 순서나 함수가 종료될 때 함수의 스택을 정리하는 시점등을 약속한 것이다

  stdcall, cdecl, thiscall, fastcall 등이 있다.

 

1. cdecl

 스택으로 전달한 매개변수를 함수를 호출한 위치에서 정리하는 방식. 매개변수 전달을 위해 사용한 스택을 call 명령 다음에 정리한다.

 

2. stdcall

 스택의 정리를 함수 내부에서 처리한다. 함수를 호출하는 위치에서는 함수를 호출만하고 스택정리를 하지 않는 방식이다.

 

3. fastcall

 처음 n개의 매개변수를 스택 대신 레지스터로 전달하는 방식. 

 

4.. thiscall

 인스턴스의 주소가 기억된 후 호출되는 함수이다.

 

2 3 4 는 함수 호출 당한 쪽에서 스택 프레임을 정리한다

 

 

'프로그래밍 > C++' 카테고리의 다른 글

메모리의 구조  (0) 2019.07.06
그래프(graph) 기초  (0) 2019.07.01
this  (0) 2019.06.28
RTTI (Run Time Type Information)  (0) 2019.06.27
4가지 캐스팅  (0) 2019.06.26