Uygulamanızda bulunup bulunmadığını test edebilirsiniz:
#include <math.h>
#ifdef NAN
#endif
#ifdef INFINITY
#endif
Varlığı INFINITYC99 (veya en azından en son taslak) ile garanti edilir ve "eğer mevcutsa pozitif veya işaretsiz sonsuzluğu temsil eden sabit bir float tipi ifadesine; aksi takdirde çeviri zamanında taşan pozitif bir float tipi sabitine genişler."
NAN tanımlanabilir veya tanımlanmayabilir ve "ancak ve ancak uygulama kayan tip için sessiz NaN'leri destekliyorsa tanımlanır. Sessiz bir NaN'yi temsil eden sabit bir kayan nokta türü ifadesine genişler."
Kayan nokta değerlerini karşılaştırıyorsanız ve şunları yapın:
a = NAN;
o zaman bile,
a == NAN;
yanlış. NaN'yi kontrol etmenin bir yolu şudur:
#include <math.h>
if (isnan(a)) { ... }
Ayrıca şunları da yapabilirsiniz: NaN a != aolup olmadığını test etmek için a.
Orada da isfinite(), isinf(), isnormal()ve signbit()makrolar içinde math.hC99.
C99 ayrıca şu nanişlevlere sahiptir :
#include <math.h>
double nan(const char *tagp);
float nanf(const char *tagp);
long double nanl(const char *tagp);
(Referans: n1256).
Docs INFINITY
Docs NAN