블로그는 나의 힘!
[ Programing ]/API2020. 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

 

lsc173님의 블로그 : 네이버 블로그

Hello~ 뒤죽박죽이다. 모아둔 자료들 정리는 언제 한담?

blog.naver.com

 

 

 

Posted by Mister_Q