C ERANGE

ERANGE 是 errno.h 头文件中定义的一个**宏**。此宏用于显示范围错误,当输入参数超出定义数学函数的范围时会发生此错误,并且 errno 被设置为 ERANGE。


#define ERANGE some_value; 

 

ERANGE 参数: 

ERANGE 宏不接受任何参数。参数超出范围意味着,考虑 pow 函数溢出的情况。

 

ERANGE 返回值

宏 ERANGE 不返回任何值,它扩展为一个非零整数常量,其值由实现定义。


 

ERANGE 示例

示例 1:ERANGE 函数在 C 中如何工作?


#include <stdio.h>
#include <errno.h>
#include <math.h>

int main () {
   double k;
   double v;

   k = 2.000000;
   v = log(k);
   
   if( errno == ERANGE ) {
      printf("Log(%f) is said to be out of range\n", k);
   } else {
      printf("Log(%f) is %f\n", k, v);
   }

   k = 1.000000;
   v = log(k);
   
   if( errno == ERANGE ) {
      printf("Log(%f) is said to be out of range\n", k);
   } else {
      printf("Log(%f) is %f\n", k, v);
   }
   
   k = 0.000000;
   v = log(k);
   
   if( errno == ERANGE ) {
      printf("Log(%f) is said to be out of range\n", k);
   } else {
      printf("Log(%f) is %f\n", k, v);
   }
   
   return 0;
}

输出


Log(2.000000) is 0.693147                                      
Log(1.000000) is 0.000000                                      
Log(0.000000) is said to be out of range