Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per ISO C Standard 11 (C11) e versioni successive, l'intestazione <tgmath.h> , oltre a includere <math.h> e <complex.h>, fornisce macro che richiamano una funzione matematica corrispondente in base ai tipi dei parametri.
Le funzioni matematiche della libreria di runtime C sono disponibili in varianti reali e complesse. Ogni variante è disponibile in tre versioni, a seconda del tipo dell'argomento: float, doublee long double. Poiché C non supporta l'overload come C++, ogni variante ha un nome diverso. Ad esempio, per ottenere il valore assoluto di un valore a virgola mobile reale, è necessario chiamare fabsf, fabso fabsl a seconda che si passi rispettivamente un floatvalore , doubleo long double . Per ottenere il valore assoluto complesso, è necessario chiamare uno di cabsf, cabso cabsl a seconda che si passi rispettivamente un floatvalore , doublee long double complesso. Se gli argomenti non corrispondono a nessuno dei tipi indicati in precedenza, la funzione viene scelta come se gli argomenti fossero double.
<tgmath.h> contiene macro che semplificano la selezione della funzione matematica corretta da chiamare. Le macro esaminano il tipo passato e quindi chiamano la funzione destra. Ad esempio, la sqrt macro viene sqrt(9.9f) associata a sqrtf(), ma viene associata sqrt(9.9) a sqrt(). Se almeno un argomento macro per un parametro generico è complesso, la macro viene associata a una funzione complessa; in caso contrario, richiama una funzione reale.
Le macro generiche di tipo in <tgmath.h> consentono di scrivere codice più portabile perché non è necessario gestire il cast o selezionare nomi di funzione diversi a seconda del tipo di argomento.
Queste macro si trovano nella propria intestazione in modo che i programmi scritti usando l'intestazione <math.h> non si interrompano. Quindi double x = sin(42); si comporta come sempre quando si include <math.h>. Anche in questo caso, la maggior parte dei programmi C esistenti dovrebbe non essere interessata quando l'intestazione <tgmath.h> è inclusa invece di <math.h> o <complex.h>.
Nella tabella seguente sono elencate le macro disponibili in <tgmath.h> e le dimensioni in cui vengono espanse.
modf non è incluso in questa tabella perché non ha una macro generica di tipo corrispondente perché non è chiaro come renderla sicura senza complicare la risoluzione dei tipi.
Requisiti
Eseguire la compilazione con /std:c11.
Windows SDK 10.0.20348.0 (versione 2104) o versione successiva. Vedi Windows SDK per scaricare l'SDK più recente. Per istruzioni su come installare e usare l'SDK per lo sviluppo C11 e C17, vedere Installare il supporto C11 e C17 in Visual Studio.