आप परीक्षण कर सकते हैं कि आपके कार्यान्वयन में यह है:
#include <math.h>
#ifdef NAN
#endif
#ifdef INFINITY
#endif
के अस्तित्व की INFINITY
गारंटी C99 (या कम से कम नवीनतम ड्राफ्ट) द्वारा दी गई है, और "टाइप फ्लोट की एक स्थिर अभिव्यक्ति के लिए फैलता है, जो सकारात्मक या अहस्ताक्षरित अनंत का प्रतिनिधित्व करता है, यदि उपलब्ध हो, तो अनुवाद के समय में ओवरफ्लो होने वाले टाइप फ़्लोट के सकारात्मक निरंतर के लिए।"
NAN
हो सकता है या परिभाषित नहीं किया जा सकता है, और "परिभाषित किया गया है और केवल अगर कार्यान्वयन फ्लोट प्रकार के लिए शांत NaNs का समर्थन करता है। यह एक शांत NaN का प्रतिनिधित्व करने वाले प्रकार फ़्लोट के निरंतर अभिव्यक्ति का विस्तार करता है।"
ध्यान दें कि यदि आप फ्लोटिंग पॉइंट मानों की तुलना कर रहे हैं, और करें:
a = NAN;
फिर भी,
a == NAN;
गलत है। NaN के लिए जाँच करने का एक तरीका होगा:
#include <math.h>
if (isnan(a)) { ... }
आप यह भी कर सकते हैं: a != a
परीक्षण करने के लिए यदि a
NaN है।
वहाँ भी है isfinite()
, isinf()
, isnormal()
, और signbit()
मैक्रो का math.h
C99 में।
C99 के भी nan
कार्य हैं:
#include <math.h>
double nan(const char *tagp);
float nanf(const char *tagp);
long double nanl(const char *tagp);
(संदर्भ: n1256)
डॉक्स इन्फिनिटी
डॉक्स नान