имеет макрос isinf
, определенный для проверки размера своего аргумента, а затем вызывает соответствующую функцию __isinf
для типа:
#define isinf(x) \
( sizeof (x) == sizeof(float ) ? __isinff((float)(x)) \
: sizeof (x) == sizeof(double) ? __isinfd((double)(x)) \
: __isinf ((long double)(x)))
Макрос такой же в архитектуре / i386 / math.ч и архитектура / рука / математика; ч;реализации самих функций предположительно отличаются.
Это вернет истину как для отрицательной бесконечности, так и для положительной, если вы столкнетесь с такой вещью:
float in = INFINITY;
float ni = -INFINITY;
NSLog(@"%@", isinf(in) ? @"Yes indeed!" : @"That is not so.");
NSLog(@"%@", isinf(ni) ? @"You betcha!" : @"I'm afraid not.");
2011-10-26 18: 41: 53.424 ToInfinityEtc [30197: 903] Да, действительно!
2011-10-26 18: 41: 53.426 ToInfinityEtc [30197: 903] Вы уверены!