Compartilhar via


Aviso do compilador (nível 3) C4414

'function': salto short para função convertido para near

Os saltos curtos geram uma instrução compacta que se ramifica para um endereço dentro de um intervalo limitado da instrução. A instrução inclui um deslocamento curto que representa a distância entre o salto e o endereço de destino, a definição da função. Durante a vinculação, uma função pode ser movida ou sujeita a otimizações de tempo de vínculo que fazem com que a função seja movida para fora do intervalo acessível de um deslocamento curto. O compilador deve gerar um registro especial para o salto, o que requer que a instrução de salto seja NEAR ou FAR. O compilador fez a conversão.

Por exemplo, o seguinte código gera 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
   }
}