fenv.h
에 대한 문서 (표준)는 다소 혼란 스럽지만 특히 부동 소수점 예외에 대해서는 "논스톱 모드"라는 개념과 feholdexcept
에 대해 혼란 스럽습니다. 내가 말할 수있는 한, IEEE 부동 소수점 구현에서 예외는 기본적으로 비 신호/"논스톱"이며, fenv.h
인터페이스는 기본값이 아닌 한 신호 모드를 활성화 할 수있는 방법을 제공하지 않는 것 같습니다. 시그널 예외 마스크를 설정하기 위해 비표준 확장을 가진 비 IEEE 시스템이나 시스템을 제외하고는 전체 개념이 feholdexcept
입니까?feholdexcept 등의 용도는 무엇입니까?
14
A
답변
6
라이브러리를 구현 중이며 호출자가 코드를 호출하기 전에 부동 소수점 환경에서 수행 할 수있는 작업에 대해 알지 못한다고 가정 해보십시오. 그들은 예외를 unmask하고, 0으로 나누기가 42를 생성하도록하는 사용자 정의 트랩 처리기를 설치할 수 있습니다. 라이브러리가 0으로 나누기에 대한 기본 IEEE-754 동작을 갖는 것에 의존한다고 가정합니다. feholdexcept
함수를 사용하면이 동작을 적용 할 수 있습니다. 마스크되지 않은 예외를 완료 한 호출자의 환경은 fesetenv
함수를 사용하여 복원 할 수 있습니다.
이것은 상당히 모호한 사용 사례이지만 솔직히 의 모든 것의 fenv.h
은 대부분의 프로그래머에게는 잘 보이지 않습니다.
관련 문제
- 1. SO_REUSEADDR의 용도는 무엇입니까?
- 2. raisePropertyChanged 이벤트의 용도는 무엇입니까?
- 3. 인터페이스에서 속성의 용도는 무엇입니까?
- 4. 이 입력란의 용도는 무엇입니까?
- 5. _fread_nolock, _fseek_nolock의 용도는 무엇입니까?
- 6. 크로스 가입의 용도는 무엇입니까?
- 7. $$ jQuery에서이 용도는 무엇입니까?
- 8. 원자 방법의 용도는 무엇입니까?
- 9. Ackermann 함수의 용도는 무엇입니까?
- 10. 투명의 용도는 무엇입니까?
- 11. Silverlight.js 파일의 용도는 무엇입니까?
- 12. JavaFX 스크립트의 용도는 무엇입니까?
- 13. Joomla의 용도는 무엇입니까?
- 14. 코드의 용도는 무엇입니까?
- 15. TelephoneNumberUtil 클래스의 용도는 무엇입니까?
- 16. System.Transactions의 실용적인 용도는 무엇입니까?
- 17. 9patch PNG의 용도는 무엇입니까?
- 18. MarshalByRefObject의 주요 용도는 무엇입니까?
- 19. jbossall-client.jar의 용도는 무엇입니까?
- 20. aligned_storage의 기본 용도는 무엇입니까?
- 21. * .pro 파일의 용도는 무엇입니까?
- 22. Log4j API의 용도는 무엇입니까?
- 23. mongo.lock 파일의 용도는 무엇입니까?
- 24. .DDF 파일의 용도는 무엇입니까?
- 25. SPHttpUtility.NoEncode 메서드의 용도는 무엇입니까?
- 26. 커밋 메시지의 용도는 무엇입니까?
- 27. synchronized 키워드의 용도는 무엇입니까?
- 28. JavaScript의 용도는 무엇입니까?
- 29. 메이크 파일의 용도는 무엇입니까?
- 30. Lucene의 용도는 무엇입니까?
표준 라이브러리의 경우, 사양에 따라 동작하도록 기본 부동 소수점 환경에서 모든 함수를 호출해야한다는 점을 별도로 명시하지 않는 한 제 3 자 라이브러리 작성자도 부담을 감당할 수 있다고 생각합니다. 호출 응용 프로그램에서. 특히'fe * '함수를 사용하면 컴파일러가 (GCC가 아니더라도) 예외를 잃을 수있는 부동 소수점 최적화를 생략 할 수 있기 때문에 ... –
@R .. :' '함수는 일반적으로 디자인과 문서화가 다소 부족합니다. 지금까지 C 라이브러리의 가장 약한 기능이라고 말할 수있을 것입니다. 개선 사항에 대한 제안 사항이 있으면 C 부동 소수점 작업 그룹으로 전달해 드리겠습니다. –