C ++ fetestexcept () - Thư viện chuẩn C ++

Hàm fetestexcept () trong C ++ xác định tập con nào được chỉ định của các ngoại lệ dấu chấm động hiện đang được đặt.

Hàm fetestexcept () được định nghĩa trong tệp tiêu đề.

nguyên mẫu fetestexcept ()

 int fetestexcept (int exceptions);

Hàm fetestexcept () kiểm tra xem ngoại lệ dấu chấm động được chỉ định bởi các ngoại lệ hiện có được thiết lập hay không. Đối số ngoại lệ là một bitwise HOẶC của macro ngoại lệ dấu chấm động.

Tham số fetestexcept ()

  • ngoại lệ: Bitmask liệt kê các cờ ngoại lệ để kiểm tra.

fetestexcept () Giá trị trả về

  • Bitwise HOẶC của macro ngoại lệ dấu phẩy động được bao gồm trong các ngoại lệ và tương ứng với các ngoại lệ dấu phẩy động hiện được đặt.

Ví dụ: Hàm fetestexcept () hoạt động như thế nào?

 #include #include #include #pragma STDC FENV_ACCESS ON using namespace std; void print_exceptions() ( cout << "Raised exceptions: "; if(fetestexcept(FE_ALL_EXCEPT)) ( if(fetestexcept(FE_DIVBYZERO)) cout << "FE_DIVBYZERO "; if(fetestexcept(FE_INEXACT)) cout << "FE_INEXACT "; if(fetestexcept(FE_INVALID)) cout << "FE_INVALID "; if(fetestexcept(FE_OVERFLOW)) cout << "FE_OVERFLOW "; if(fetestexcept(FE_UNDERFLOW)) cout << "FE_UNDERFLOW "; ) else cout << "None"; cout << endl; ) int main(void) ( print_exceptions(); feraiseexcept(FE_INVALID|FE_DIVBYZERO); print_exceptions(); feclearexcept(FE_ALL_EXCEPT); print_exceptions(); return 0; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Đã tăng ngoại lệ: Không có Đã tăng ngoại lệ: FE_DIVBYZERO FE_INVALID Đã tăng ngoại lệ: Không có

thú vị bài viết...