C 庫 - EDOM 宏



C 庫的EDOM宏表示域錯誤,如果輸入引數超出數學函式定義的域,則會發生此錯誤,並且errno被設定為EDOM。

程式設計師可以在呼叫此類函式後檢查errno以處理域錯誤。

語法

以下是C庫中EDOM宏的語法:

#define EDOM some_value

引數

  • EDOM是宏,因此它不接受任何引數。

返回值

  • 此函式不返回任何值。

示例 1

以下是C庫程式,用於演示EDOM宏。

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

int main () {
   double val;

   errno = 0;
   val = sqrt(-10);
   
   if(errno == EDOM) {
      printf("Invalid value \n");
   } else {
      printf("Valid value\n");
   }
   
   errno = 0;
   val = sqrt(10);
   
   if(errno == EDOM) {
      printf("Invalid value\n");
   } else {
      printf("Valid value\n");
   }
   
   return(0);
}

輸出

執行以上程式碼後,我們將得到以下結果:

Invalid value
Valid value

示例 2

在此程式中,我們使用asin()函式計算輸入值的反正弦。

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

int main() {
   double invalid_value = 2.0; 

   double result = asin(invalid_value);
   if (errno == EDOM) {
       printf("Arcsine of %f is not defined.\n", invalid_value);
   } else {
       printf("Arcsine of %f = %f radians\n", invalid_value, result);
   }

   return 0;
}

輸出

執行以上程式碼後,我們將得到以下結果:

Arcsine of 2.000000 is not defined.
廣告

© . All rights reserved.