Aracılığıyla paylaş


_ReturnAddress

Microsoft'a Özgü

intrinsic _ReturnAddress , denetim çağırana geri döndükten sonra yürütülecek çağrı işlevindeki yönergenin adresini sağlar.

Aşağıdaki programı derleyin ve hata ayıklayıcıda adım adım ilerleyin. Programda adım adım ilerlediğinizde, adresinden _ReturnAddressdöndürülen adresi not edin. Ardından, kullanılan işlevden _ReturnAddress döndükten hemen sonra Nasıl yapılır: Ayrıştırma Penceresini Kullanma'yı açın ve yürütülecek bir sonraki yönergenin adresinin, adresinden _ReturnAddressdöndürülen adresle eşleştiğine dikkat edin.

Satır içi gibi iyileştirmeler iade adresini etkileyebilir. Örneğin, aşağıdaki örnek program /Ob1 ile derlenmişse, inline_func çağıran işlevinin mainiçine satır içine alınır. Bu nedenle, ve main çağrılarının _ReturnAddress inline_func her birinin aynı değeri üretmesi gerekir.

_ReturnAddress/clr ile derlenen bir programda kullanıldığında, çağrıyı _ReturnAddress içeren işlev yerel işlev olarak derlenir. Yönetilen olarak derlenen bir işlev içeren _ReturnAddress_ReturnAddress işleve çağrı yapıldığında beklendiği gibi davranmayabilir.

Gereksinimler

intrin.h üst bilgi dosyası<>

Örnek

// compiler_intrinsics__ReturnAddress.cpp
#include <stdio.h>
#include <intrin.h>

#pragma intrinsic(_ReturnAddress)

__declspec(noinline)
void noinline_func(void)
{
   printf("Return address from %s: %p\n", __FUNCTION__, _ReturnAddress());
}

__forceinline
void inline_func(void)
{
   printf("Return address from %s: %p\n", __FUNCTION__, _ReturnAddress());
}

int main(void)
{
   noinline_func();
   inline_func();
   printf("Return address from %s: %p\n", __FUNCTION__, _ReturnAddress());

   return 0;
}

END Microsoft'a Özgü

Ayrıca bkz.

_AddressOfReturnAddress
Derleyici iç bilgileri
Anahtar Sözcükler