Udostępnij przez


Ostrzeżenie kompilatora (poziom 3) C4267

"var" : konwersja z "size_t" na "typ", możliwa utrata danych

Uwagi

Kompilator wykrył konwersję z size_t na mniejszy typ.

Aby naprawić to ostrzeżenie, użyj polecenia size_t zamiast type. Alternatywnie należy użyć typu całkowitego, który jest co najmniej tak duży, jak size_t.

Przykład

Poniższy przykład generuje kod C4267.

// C4267.cpp
// compile by using: cl /W4 C4267.cpp
void Func1(short) {}
void Func2(int) {}
void Func3(long) {}
void Func4(size_t) {}

int main() {
   size_t bufferSize = 10;
   Func1(bufferSize);   // C4267 for all platforms
   Func2(bufferSize);   // C4267 only for 64-bit platforms
   Func3(bufferSize);   // C4267 only for 64-bit platforms
   Func4(bufferSize);   // OK for all platforms
}