Udostępnij przez


Ostrzeżenie kompilatora (poziom 3) C4414

"function": krótki skok do funkcji przekonwertowany na niemal

Uwagi

Krótkie skoki generują kompaktową instrukcję, która rozgałęzia się na adres w ograniczonym zakresie od instrukcji. Instrukcja zawiera krótkie przesunięcie, które reprezentuje odległość między skokiem a adresem docelowym, definicją funkcji. Podczas łączenia funkcji można przenieść lub podlegać optymalizacji czasu połączenia, które powodują przeniesienie funkcji z zakresu osiągalnego z krótkiego przesunięcia. Kompilator musi wygenerować specjalny rekord dla skoku, który wymaga, aby instrukcja jmp zawierała wartość NEAR lub FAR. Kompilator dokonał konwersji.

Example

Na przykład następujący kod generuje kod C4414:

// C4414.cpp
// compile with: /W3 /c
// processor: x86
int DoParityEven();
int DoParityOdd();
unsigned char global;
int __declspec(naked) DoParityEither()
{
   __asm
   {
      test global,0
      jpe SHORT DoParityEven  // C4414
      jmp SHORT DoParityOdd   // C4414
   }
}