Share via


編譯器警告 (層級 1) C4311

'variable' : 指標從 'type' 到 'type' 截斷

此警告會偵測 64 位元指標截斷問題。 例如,如果程式碼是針對 64 位元架構而編譯的,若指派給 int (32 位元),指標 (64 位元) 的值將會被截斷。 如需詳細資訊,請參閱 使用指標 的規則。

如需警告 C4311 常見原因的其他資訊,請參閱 常見編譯器錯誤

下列程式碼範例會在針對 64 位元目標而編譯時產生 C4311,並接著示範如何修正此問題:

// 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
}