C 庫宏 ERANGE 表示一個范圍錯誤,它在輸入?yún)?shù)超出數(shù)學(xué)函數(shù)定義的范圍時發(fā)生,errno 被設(shè)置為 ERANGE。
下面是 ERANGE 宏的聲明。
#define ERANGE some_value
NA
NA
下面的示例演示了 ERANGE 宏的用法。
#include <stdio.h> #include <errno.h> #include <math.h> int main() { double x; double value; x = 2.000000; value = log(x); if( errno == ERANGE ) { printf("Log(%f) 超出范圍\n", x); } else { printf("Log(%f) = %f\n", x, value); } x = 1.000000; value = log(x); if( errno == ERANGE ) { printf("Log(%f) 超出范圍\n", x); } else { printf("Log(%f) = %f\n", x, value); } x = 0.000000; value = log(x); if( errno == ERANGE ) { printf("Log(%f) 超出范圍\n", x); } else { printf("Log(%f) = %f\n", x, value); } return 0; }
讓我們編譯并運行上面的程序,這將產(chǎn)生以下結(jié)果:
Log(2.000000) = 0.693147 Log(1.000000) = 0.000000 Log(0.000000) = -inf