[ Programing ]/API
함수 호출 규약
Mister_Q
2020. 5. 20. 11:01
1. 호출 규약
: 프로그래밍에서 함수를 호출할 때 정해저 있는 규칙을 의미한다.
함수 호출 규약의 분류 기준
1. 파라미터의 전달 방법
- 스택을 사용해서 전달할 것인가?, 레지스터를 사용해서 전달할 것인가?
2. 파라미터의 전달 순서
- 여러개의 파라미터를 어떤 파라미터부터 전달할 것인가?
3. 함수 호출간 사용했던 스택 정리방법
- 함수가 끝난후에 스택은 어디에서 정리할 것인가?
사용 방법
반환 형과 함수명 사이에 넣는다.
ex) void __stdcall add( int a, int a );
int __cdecl add(int a, int b);
2. 함수 호출 규약의 종류
호출 규약 |
스택 정리 |
인수전달 |
이름규칙 |
__cdecl |
호출원 |
오른쪽 먼저 |
_함수명 |
__stdcall |
함수 |
오른쪽 먼저 |
_함수명@인수크기 |
__fastcall |
함수 |
오른쪽 먼저 (ECX, EDX가장 먼저) |
@함수명@인수크기 |
thiscall |
함수 |
오른쪽 먼저 (this 포인터는 ecx레지스터로 전달된다. |
C++이름 규칙을 따름 |
naked |
함수 |
오른쪽 먼저 |
없음
|
lsc173님의 블로그 : 네이버 블로그
Hello~ 뒤죽박죽이다. 모아둔 자료들 정리는 언제 한담?
blog.naver.com