| 組件 | 類型 | 說明 |
|---|---|---|
| EDOM | 宏 | 定義域錯誤(如 sqrt(-1)、log(0)) |
| ERANGE | 宏 | 值域錯誤(結果溢出,如 exp(1000)) |
| errno | 全局變量 | 線程局部存儲,程序啟動為 0,錯誤時置對應碼 |
#define EDOM some_value
#define ERANGE some_value
具體數值由實現定義(如 Linux:EDOM=33, ERANGE=34)。
#include
#include
#include
errno = 0;
double r = sqrt(-1.0);
if (errno == EDOM) printf("定義域錯誤\n");
errno = 0;
r = exp(1000);
if (errno == ERANGE) printf("值域溢出\n");
char *strerror(int errnum):返回錯誤描述字符串void perror(const char *s):輸出 s: 錯誤描述 到 stderr英文原文:ACM UIUC C Guide
譯者:柳驚鴻 (Poechant)