Partilhar via


/QIfist (suprimir _ftol)

Preterido. Suprime a chamada da função auxiliar _ftol quando é necessária uma conversão de um tipo de ponto flutuante para um tipo integral.

Sintaxe

/QIfist

Comentários

Observação

/QIfist só está disponível no compilador direcionado a x86; esta opção do compilador não está disponível nos compiladores direcionados a x64 ou ARM.

Além de converter de um tipo de ponto flutuante em tipo integral, a função _ftol garante que o modo de arredondamento da FPU (unidade de ponto flutuante) esteja em direção a zero (truncado), definindo os bits 10 e 11 da palavra de controle. Isso garante que a conversão de um tipo de ponto flutuante em um tipo integral ocorra conforme descrito pelo padrão ANSI C (a parte fracionária do número é descartada). Ao usar /QIfist, essa garantia não se aplica mais. O modo de arredondamento será um dos quatro, conforme documentado nos manuais de referência da Intel:

  • Arredondar para o mais próximo (número par se equidistante)

  • Arredondar para o infinito negativo

  • Arredondar para o infinito positivo

  • Arredondar para zero

Você pode usar a função _control87, _controlfp, __control87_2 C Run-Time para modificar o comportamento de arredondamento da FPU. O modo de arredondamento padrão da FPU é "Arredondar para o mais próximo". O uso de /QIfist pode melhorar o desempenho do aplicativo, mas não sem risco. Você deve testar completamente as partes do código que são sensíveis aos modos de arredondamento antes de recorrer ao código criado com /QIfist em ambientes de produção.

/arch (x86) e /QIfist não podem ser usados no mesmo compiland.

Observação

/QIfist não está em vigor por padrão porque os bits de arredondamento também afetam o arredondamento de ponto flutuante para ponto flutuante (que ocorre após cada cálculo). Portanto, quando você define os sinalizadores para arredondamento de estilo C (para zero), seus cálculos de ponto flutuante podem ser diferentes. /QIfist não deverá ser usado se o código depender do comportamento esperado de truncar a parte fracionária do número de ponto flutuante. Se você não tiver certeza, não use /QIfist.

A opção /QIfist foi preterida a partir do Visual Studio 2005. O compilador fez melhorias significativas na velocidade de conversão de float em int. Para obter uma lista de opções do compilador preteridas, confira Opções do compilador preteridas e removidas em Opções do compilador listadas por categoria.

Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.

  3. Digite a opção do compilador na caixa Opções Adicionais.

Para definir essa opção do compilador via programação

Confira também

Opções /Q (operações de nível baixo)
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC