Предупреждение компилятора (уровень 1) C4311
"переменная" : усечение указателя из типа "тип" в "тип"
Данное предупреждение сообщает о проблемах с усечением 64-разрядного указателя. Например, если код компилируется для 64-разрядной архитектуры, значение указателя (64 бита) будет усечено, если он назначен int
(32 бита). Дополнительные сведения см. в разделе "Правила использования указателей".
Дополнительные сведения о распространенных причинах предупреждения C4311 см. в разделе Распространенные ошибки компилятора.
В следующем примере показано возникновение ошибки C4311 при компиляции для 64-разрядной архитектуры и возможные способы ее устранения.
// C4311.cpp
// compile by using: cl /W1 C4311.cpp
int main() {
void* p = &p;
unsigned int i = (unsigned int) p; // C4311 for 64-bit targets
unsigned long long j = (unsigned long long) p; // OK
}