다음을 통해 공유


인수를 전달 하 고 명명 규칙

Microsoft 전용

모든 인수는 전달 하는 경우 32 비트에로 확장 됩니다.반환 값 32 비트로 확장 하 고 EDX:EAX 레지스터 쌍을 반환 하는 8 바이트 구조를 제외 하 고는 EAX 레지스터에 반환 됩니다.더 큰 구조로 반환 됩니다 EAX 레지스터에 대 한 포인터를 숨겨진 구조체를 반환 합니다.매개 변수 오른쪽에서 왼쪽으로 스택에 푸시됩니다.포드 구조 레지스터에 반환 되지 않습니다.

컴파일러에서 프롤로그 생성 한 함수에 사용 되는 경우 에필로그 코드를 저장 하 고 복원 ESI, EDI, EBX, 및 EBP 레지스터.

[!참고]

구조체, 공용 구조체 또는 클래스 함수에서 값으로 반환 되 면 동일 하 게 모든 정의 종류의 필요, 다른 프로그램이 런타임에 실패할 수 있습니다.

함수 프롤로그와 에필로그 코드를 직접 정의 하는 방법에 대 한 자세한 내용은 Naked 함수 호출.

다음과 같은 호출 규칙이 Visual C/C++ 컴파일러에 의해 지원 됩니다.

키워드

스택 정리

매개 변수 전달

__cdecl

호출자에 게

매개 변수는 스택에 역순으로 (오른쪽에서 왼쪽으로) 푸시합니다.

__clrcall

n/a

매개 변수 순서 (왼쪽에서 오른쪽으로) CLR 식 스택에 로드 합니다.

__stdcall

호출 수신자

매개 변수는 스택에 역순으로 (오른쪽에서 왼쪽으로) 푸시합니다.

__fastcall

호출 수신자

그런 다음 스택에 푸시된 레지스터를 저장

__thiscall

호출 수신자

스택으로 푸시됩니다. 포인터가 ECX에 저장

관련된 정보를 참조 하십시오. 사용 되지 않는 호출 규칙.

특정 종료

참고 항목

참조

호출 규칙