Я не знаю, является ли это стандартным или портативным, но вот начало:
jcomeau@intrepid:/tmp$ cat test.c; make test; ./test
#include <stdio.h>
int main() {
printf("%f\n", 1.0 / 0);
printf("%f\n", -1.0 / 0);
printf("%f\n", 0.0 / 0);
return 0;
}
cc test.c -o test
test.c: In function ‘main’:
test.c:3: warning: division by zero
test.c:4: warning: division by zero
test.c:5: warning: division by zero
inf
-inf
-nan
Как ни странно, я не могу получить положительный NaN, используя этот наивный подход.
<ч />
Также смотрите это: http://www.gnu.org/s/hello/manual/libc/Infinity-and-NaN.html