다음을 통해 공유


반환 값(C++)

64비트에 맞는 스칼라 반환 값은 RAX를 통해 반환됩니다(__m64 형식 포함).Float, double 및 벡터 형식(예: __m128, __m128i__m128d)을 포함하는 스칼라 이외의 형식은 XMM0에 반환됩니다.RAX 또는 XMM0에 반환되는 값에서 사용되지 않는 비트의 상태는 정의되지 않습니다.

사용자 정의 형식은 전역 함수 및 정적 멤버 함수 값으로 반환될 수 있습니다.RAX에서 값으로 반환되려면 사용자 정의 형식의 길이가 1, 2, 4, 8, 16, 32 또는 64비트여야 하고 사용자 정의 생성자, 소멸자 또는 복사 할당 연산자, 전용 또는 보호된 비정적 데이터 멤버, 참조 형식의 비정적 데이터 멤버, 기본 클래스, 가상 함수나 이러한 요구를 충족하지 않는 데이터 멤버도 없어야 합니다.이것은 기본적으로 C++03 POD 형식의 정의입니다.이 정의는 C++11 표준에서 변경되었으므로 이 테스트에는 std::is_pod를 사용하지 않는 것이 좋습니다. 그렇지 않은 경우 호출자는 메모리를 할당하고 반환 값에 대한 포인터를 첫 번째 인수로 전달할 책임이 있다고 간주됩니다.그런 다음 후속 인수가 오른쪽으로 하나씩 이동됩니다.RAX에서 호출 수신자에 의해 동일한 포인터가 반환되어야 합니다.

이러한 예에서는 지정된 선언을 사용하여 함수에 대해 매개 변수 및 반환 값이 전달되는 방식을 보여 줍니다.

반환 값 1의 예 – 64비트 결과

  

반환 값 2의 예 – 128비트 결과

  

반환 값 3의 예 – 포인터별 사용자 형식 결과

     

반환 값 4의 예 – 값별 사용자 형식 결과

     

참고 항목

참조

호출 규칙