Nasıl C nan ve ınf kullanılır?
Ben bir sayısal yöntem bu olabilir dönüş nan veya ınf eğer bir hata var ve test amaçlı istiyorum geçici olarak kuvvet dönmek nan veya ınf olun durum olarak ele doğru. Güvenilir,derleyici bağımsızC nan ve ınf değerleri oluşturmak için bir yol?
Yaklaşık 10 dakika googling sonra sadece derleyici bağımlı çözümler bulmayı başardım.
CEVAP
Eğer uygulama varsa test edebilirsiniz:
#include <math.h>
#ifdef NAN
/* NAN is supported */
#endif
#ifdef INFINITY
/* INFINITY is supported */
#endif
INFINITY
varlığını C99 (ya da en azından en son taslak) tarafından garanti edilir, ve "tip sabit bir ifade genişletir olumlu veya imzasız temsil eden yüzer
kullanılabilir; bir pozitif sabit değilse sonsuz yazın çevirisi anda bu taşma şamandıra."
NAN
tanımlanmış olabilir ya da olmayabilir, ve "eğer bu uygulama yüzer türü için sessiz NaNs destekler. eğer tanımlanır Yazın yüzer sessiz bir NaN temsil eden sabit bir ifade olarak yorumlanacaktır."
Eğer kayan nokta değerleri karşılaştırarak iseniz, ve o not
a = NAN;
o zaman bile
a == NAN;
false. NaN kontrol etmenin bir yolu olabilir:
#include <math.h>
if (isnan(a)) { ... }
Ayrıca yapabilirsiniz: a
NaN test etmek için a != a
.
Ayrıca isfinite()
, isinf()
, isnormal()
, ve C99 math.h
16 *makrolar var.
C99 da nan
işlevleri vardır:
#include <math.h>
double nan(const char *tagp);
float nanf(const char *tagp);
long double nanl(ocnst char *tagp);
(Referans: n1256).
Nasıl yansıması genel bir Yöntemi çağı...
Geçişlerini için Dinlenmek nedir ve na...
Nasıl ve kabuk boolean değişkenleri bi...
Raylar 4: nasıl kullanılır(belge)$.() ...
LocalBroadcastManager nasıl kullanılır...