Oltre alla macro NAN, C99 ha due modi per generare un valore NaN per un numero in virgola mobile, la funzione nanf(const char *tagp)
e strtof("NAN(char-sequence)")
.Per che cosa è l'argomento "sequenza-carattere" per le funzioni di generazione NaN?
Entrambi questi metodi di generazione di un NaN accettano un argomento stringa facoltativo (* tagp in nanf()
e la sequenza di caratteri nel metodo strtof). Che cosa fa esattamente questo argomento per le stringhe? Non sono stato in grado di trovare esempi concreti di come lo useresti. Da cppreference.com abbiamo:
La chiamata nan ("stringa") è equivalente al strtod chiamata ("NAN (string)", (char **) NULL);
La chiamata nan ("") è equivalente alla chiamata strtod ("NAN()", (char **) NULL);
La chiamata nan (NULL) è equivalente alla chiamata strtod ("NAN", (char **) NULL);
E nan(3) dice:
Queste funzioni restituiscono una rappresentazione (determinato dal TAGP) di un NaN tranquilla. [snip] L'argomento tagp è usato in un modo non specificato. Sui sistemi IEEE 754, ci sono molte rappresentazioni di NaN, e tagp ne seleziona uno.
Questo in realtà non mi dice cosa posso usare per la stringa di tagp o perché vorrei mai usarlo. Esiste un elenco di opzioni valide per questa stringa di tag e quale sarebbe il motivo per utilizzarne uno rispetto al valore predefinito nanf(NULL)
?
La pagina cppreference si è collegato ha un esempio concreto – Cubbi
Wow. Come mi sono perso. Anche se non sono ancora sicuro quale sia la differenza tra le due rappresentazioni nell'esempio. – mshildt