Compartir a través de


Advertencia del compilador (nivel 3) C4414

"function": el salto short a la función se convirtió en near

Los saltos cortos generan instrucciones compactas que se bifurcan a una dirección dentro de un intervalo limitado desde la instrucción. La instrucción incluye un desplazamiento corto que representa la distancia entre el salto y la dirección de destino, la definición de la función. Durante la vinculación, una función se puede mover o estar sujeta a optimizaciones en tiempo de vinculación que hacen que la función salga del intervalo al que se puede acceder desde un desplazamiento corto. El compilador debe generar un registro especial para el salto, lo que requiere que la instrucción jmp sea NEAR o FAR. El compilador hizo la conversión.

Por ejemplo, el código siguiente genera 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
   }
}