C语言 <errno.h> ERANGE 宏

  • 描述

    C库宏ERANGE 表示范围错误,如果输入参数超出范围,则会发生范围错误,在该范围内定义了数学函数并将errno设置为ERANGE。
  • 声明

    以下是ERANGE宏的声明。
    
    #define ERANGE some_value
    
    参数
    没有参数。
  • 返回值

    没有。
    示例
    以下示例显示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) is out of range\n", x);
       } else {
          printf("Log(%f) = %f\n", x, value);
       }
    
       x = 1.000000;
       value = log(x);
       
       if( errno == ERANGE ) {
          printf("Log(%f) is out of range\n", x);
       } else {
          printf("Log(%f) = %f\n", x, value);
       }
       
       x = 0.000000;
       value = log(x);
       
       if( errno == ERANGE ) {
          printf("Log(%f) is out of range\n", x);
       } else {
          printf("Log(%f) = %f\n", x, value);
       }
       
       return 0;
    }
    
    尝试一下
    让我们编译并运行上面的程序,它将产生以下结果-
    
    Log(2.000000) = 0.693147                                      
    Log(1.000000) = 0.000000                                      
    Log(0.000000) is out of range