Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 2) C4826

Převod z "typ1" na "type_2" je s rozšířeným.To může způsobit neočekávané runtime chování.

Toto upozornění signalizuje, že kompilátor provést rozšíření znaménko při 32bitové ukazatel byl přetypovat proměnnou 64-bit.

Rozšíření byla provedena na POPISOVAČ typu systému windows, je bezpečnější toto upozornění ignorovat.Pokud rozšíření byl proveden na typ ukazatele, upravte přetypování, aby se zamezilo znak (viz příklad níže).

C4826 je ve výchozím nastavení je vypnuto.Další informace naleznete v tématu Upozornění kompilátoru, která jsou ve výchozím natavení vypnuta..

Příklad

Následující ukázka generuje upozornění C4826.

// C4826.cpp
// compile with: /W2 /c
#include <windows.h>
#pragma warning(default: 4826)

void * __ptr64 F1 (void * __ptr32 P ) {
   return (void * __ptr64)P;   // C4826
   // try the following line instead
   // return (void * __ptr64)(ULONGLONG)(ULONG)P;
}

void * __ptr64 F2 ( void * P ) {
   return (void * __ptr64)P;   // C4826
   // try the following line instead
   // return (void * __ptr64)(ULONGLONG)(ULONG)P;
}

unsigned __int64 F3r ( void * P ) {
   return (unsigned __int64)P;   // C4826
   // try the following line instead
   // return (unsigned __int64)(ULONGLONG)(ULONG)P;
}