인수를 전달 하 고 명명 규칙
Microsoft 전용
모든 인수는 전달 하는 경우 32 비트에로 확장 됩니다.반환 값 32 비트로 확장 하 고 EDX:EAX 레지스터 쌍을 반환 하는 8 바이트 구조를 제외 하 고는 EAX 레지스터에 반환 됩니다.더 큰 구조로 반환 됩니다 EAX 레지스터에 대 한 포인터를 숨겨진 구조체를 반환 합니다.매개 변수 오른쪽에서 왼쪽으로 스택에 푸시됩니다.포드 구조 레지스터에 반환 되지 않습니다.
컴파일러에서 프롤로그 생성 한 함수에 사용 되는 경우 에필로그 코드를 저장 하 고 복원 ESI, EDI, EBX, 및 EBP 레지스터.
[!참고]
구조체, 공용 구조체 또는 클래스 함수에서 값으로 반환 되 면 동일 하 게 모든 정의 종류의 필요, 다른 프로그램이 런타임에 실패할 수 있습니다.
함수 프롤로그와 에필로그 코드를 직접 정의 하는 방법에 대 한 자세한 내용은 Naked 함수 호출.
다음과 같은 호출 규칙이 Visual C/C++ 컴파일러에 의해 지원 됩니다.
키워드 |
스택 정리 |
매개 변수 전달 |
---|---|---|
호출자에 게 |
매개 변수는 스택에 역순으로 (오른쪽에서 왼쪽으로) 푸시합니다. |
|
n/a |
매개 변수 순서 (왼쪽에서 오른쪽으로) CLR 식 스택에 로드 합니다. |
|
호출 수신자 |
매개 변수는 스택에 역순으로 (오른쪽에서 왼쪽으로) 푸시합니다. |
|
호출 수신자 |
그런 다음 스택에 푸시된 레지스터를 저장 |
|
호출 수신자 |
스택으로 푸시됩니다. 이 포인터가 ECX에 저장 |
관련된 정보를 참조 하십시오. 사용 되지 않는 호출 규칙.
특정 종료