As-if rule
From cppreference.net
프로그램의 관찰 가능한 동작을 변경하지 않는 모든 코드 변환을 허용합니다.
설명
C 컴파일러는 다음이 유지되는 한 프로그램에 어떤 변경이든 수행할 수 있습니다:
| (until C11) | |
|
1)
volatile
객체에 대한 접근(읽기 및 쓰기)은 발생하는 표현식의 의미론에 따라 엄격하게 수행됩니다. 특히, 동일 스레드 내의 다른 volatile 접근과 관련하여
재배열되지 않습니다
.
|
(since C11) |
2)
프로그램 종료 시, 파일에 기록된 데이터는 프로그램이 작성된 대로 실행된 경우와 정확히 동일합니다.
3)
대화형 장치로 전송되는 프롬프팅 텍스트는 프로그램이 입력을 대기하기 전에 표시됩니다.
|
4)
pragma
#pragma STDC FENV_ACCESS
가 지원되고
ON
으로 설정된 경우,
부동 소수점 환경
(부동 소수점 예외 및 반올림 모드)에 대한 변경 사항은 다음과 같은 예외를 제외하고 작성된 대로 실행되는 것처럼 부동 소수점 산술 연산자 및 함수 호출에서 관찰됨이 보장됩니다:
|
(C99부터) |
참고 사항
|
이 섹션은 불완전합니다
이유: 다음과 유사하게 작성해 주세요 cpp/language/as_if |
참고 항목
|
C++ 문서
참조:
as-if rule
|