C-standard-library-c-macro-erange

提供:Dev Guides
移動先:案内検索

Cライブラリマクロ-ERANGE

説明

前述のように、Cライブラリマクロ ERANGE は、入力引数が範囲外にある場合に発生する範囲エラーを表します。この範囲を超えると、数学関数が定義され、errnoが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) 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