/QIfist (Elimina _ftol)
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 compilato 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
L'opzione /QIfist non è attiva per impostazione predefinita perché i bit di arrotondamento influiscono anche sulla virgola mobile nell'arrotondamento della virgola mobile, eseguito dopo ogni 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 frazionaria del numero a virgola mobile. In caso di dubbio, non utilizzare /QIfist.
/QIfist è deprecata. La velocità di conversione da valori a virgola mobile a valori integrali del compilatore è significativamente aumentata. Per ulteriori informazioni, vedere Deprecated Compiler Options in Visual C++ 2005.
Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Procedura: aprire le pagine delle proprietà dei progetti.
Fare clic sulla cartella C/C++.
Fare clic sulla pagina delle proprietà Riga di comando.
Digitare l'opzione del compilatore nella casella Opzioni aggiuntive.
Per impostare l'opzione del compilatore a livello di codice
- Vedere la proprietà AdditionalOptions.