Condividi tramite


/QIfist (Elimina _ftol)

Aggiornamento: novembre 2007

Disattiva la chiamata della funzione di supporto _ftol quando è necessario eseguire la conversione da un tipo a virgola mobile a un tipo integrale.

/QIfist

Note

Nota:

/QIfist è disponibile solo nel compilatore per piattaforma x86, non nei compilatori per piattaforma x64 o Itanium.

Oltre a eseguire la conversione da un tipo a virgola mobile a un tipo integrale, la funzione _ftol garantisce che la modalità di arrotondamento dell'unità a virgola mobile (FPU, floating-point unit) sia per difetto (troncamento), impostando i bit 10 e 11 della parola di controllo. In questo modo la conversione da un tipo a virgola mobile a un tipo integrale si verifica come viene descritto dallo standard C ANSI in quanto la parte decimale del numero viene ignorata. Quando si utilizza /QIfist, tale garanzia non è più valida. La modalità di arrotondamento può essere una delle quattro riportate di seguito, come viene descritto nei manuali di riferimento Intel:

  • Arrotondamento al numero più vicino (numero dispari se equidistante)

  • Arrotondamento verso l'infinito negativo

  • Arrotondamento verso l'infinito positivo

  • Arrotondamento per difetto

Per modificare la modalità di arrotondamento dell'unità a virgola mobile, è possibile utilizzare la funzione di runtime C _control87, _controlfp, __control87_2. La modalità predefinita della FPU è "Arrotondamento all'intero più vicino". L'utilizzo di /QIfist può migliorare le prestazioni dell'applicazione, ma non è esente da rischi. Prima di utilizzare il codice generato con /QIfist in ambienti di produzione, è necessario testarne accuratamente le parti sensibili alle modalità di arrotondamento.

/arch (Architettura minima della CPU) e /QIfist non possono essere utilizzate sullo stesso modulo.

Nota:

/QIfist non è attiva per impostazione predefinita perché i bit di arrotondamento influiscono anche sulla virgola mobile nell'arrotondamento della virgola mobile, effettuato dopo ogni operazione di calcolo. Pertanto, quando si impostano i flag relativi all'arrotondamento per difetto, in stile C, è possibile che le operazioni in virgola mobile siano diverse. L'opzione /QIfist non deve essere utilizzata se il codice dipende dalla modalità di troncamento prevista per la parte decimale del numero a virgola mobile. In caso di dubbio, non utilizzare /QIfist.

In Visual C++ 2005, /QIfist è disapprovato. La velocità di conversione da valori a virgola mobile a valori integrali del compilatore è significativamente aumentata. Per ulteriori informazioni, vedere Opzioni del compilatore obsolete in Visual C++ 2005.

Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Procedura: aprire le pagine delle proprietà dei progetti.

  2. Fare clic sulla cartella C/C++.

  3. Fare clic sulla pagina delle proprietà Riga di comando.

  4. Digitare l'opzione del compilatore nella casella Opzioni aggiuntive.

Per impostare l'opzione del compilatore a livello di codice

Vedere anche

Riferimenti

Opzioni /Q (Operazioni di basso livello)

Opzioni del compilatore

Impostazione delle opzioni del compilatore