Anda dapat menguji apakah implementasi Anda memilikinya:
#include <math.h>
#ifdef NAN
#endif
#ifdef INFINITY
#endif
Keberadaan INFINITYdijamin oleh C99 (atau draf terbaru setidaknya), dan "meluas ke ekspresi konstan tipe float yang mewakili infinity positif atau tidak bertanda, jika tersedia; selain itu ke konstanta positif tipe float yang meluap pada waktu penerjemahan."
NAN mungkin atau mungkin tidak ditentukan, dan "ditentukan jika dan hanya jika implementasi mendukung NaN diam untuk jenis float. Ini meluas ke ekspresi konstan jenis float yang mewakili NaN diam."
Perhatikan bahwa jika Anda membandingkan nilai floating point, dan lakukan:
a = NAN;
bahkan kemudian,
a == NAN;
salah. Salah satu cara untuk memeriksa NaN adalah:
#include <math.h>
if (isnan(a)) { ... }
Anda juga dapat melakukan: a != auntuk menguji apakah aNaN.
Ada juga isfinite(), isinf(), isnormal(), dan signbit()makro di math.hdalam C99.
C99 juga memiliki nanfungsi:
#include <math.h>
double nan(const char *tagp);
float nanf(const char *tagp);
long double nanl(const char *tagp);
(Referensi: n1256).
Docs INFINITY
Docs NAN