EDOM 是在 errno.h 头文件中定义的一个**宏**。此宏用于显示域错误,当输入参数超出定义数学函数的域时会发生域错误,并且 errno 被设置为 EDOM。
#define EDOM some_value;
EDOM 宏不带任何参数。参数超出域意味着,考虑当我们要求一个负数的平方根时的情况。
宏 EDOM 不返回任何值,它扩展为一个非零整数常量,其值是实现定义的。
#include <stdio.h>
#include <errno.h>
#include <math.h>
int main () {
double value;
errno = 0;
value = sqrt(-10);
if(errno == EDOM) {
printf("Value is Invalid \n");
} else {
printf("Value is valid \n");
}
errno = 0;
value = sqrt(10);
if(errno == EDOM) {
printf("Value is Invalid\n");
} else {
printf("Value is valid\n");
}
return(0);
}
输出
Value is Invalid Value is valid