Skip to main content

시퀀스 포인트는 무엇입니까?

computer 컴퓨터 프로그래밍의 시퀀스 포인트는 변수의 값이 완전히 계산 된 경우 프로그램 실행 중에 발생하는 순간이며, 이전 작업의 변경이없고 미래의 표현식에서 아직 계산되지 않고 아직 수행되지 않았습니다.시퀀스 지점이 존재하는 곳이 여러 곳이 있습니다.주로 C 언어 표준 및 mdash에 정의됩니다.기능 내부의 코드 실행 전, 제어 표현식의 끝에서 For and IF 및 IF, 및 간단한 C 코드의 단순한 라인과 같은 완전한 표현의 끝에.시퀀스 포인트를 정의하는 몇 가지 이유는 모호한 상황을 피하거나 정의되지 않은 동작을 초래하거나 컴파일러를 혼동하고 예측할 수없는 코드를 생성 할 수 있기 때문입니다.대부분의 경우 프로그래머는 시퀀스 지점에 대해 명시 적으로 걱정하지 않지만, 컴파일러를 작성할 때 코드가 올바르게 실행되도록하는 개념이 매우 중요합니다. c 프로그래밍 언어의 시퀀스 지점의 예는 다음에 있습니다.진술 a ' a + b;.이 표현에서, 세미콜론은 서열 지점이다.표현이 완료되면 A의 값이 평가되고 다음 표현이 시작될 때까지 잔류 계산은 수행되지 않습니다.동일한 부호는 표현식 전체에 걸쳐 어떤 순서로 컴파일러에 의해 수정 될 수 있기 때문에 동일한 부호는 시퀀스 지점이 아닙니다.

시퀀스 지점의 주요 규칙은 변수가 어떤 점 사이의 점 사이에 두 번 이상 액세스되지 않는다는 것입니다.가치의 변화를 계산하는 것 외에는 목적.이 규칙의 위반은 배열에 값을 할당 할 때 가장 잘 표현됩니다.변수 a와 i라는 배열이 있으면 문법적으로 c에서 표현 i [a] ' a ++를 쓸 수 있습니다.여기서, 변수는 현재 값을 평가하는 것 외에 다른 목적으로 두 번 이상 액세스됩니다.즉, 배열 I의 인덱스로 사용됩니다. 이는 컴파일러가 인덱스로 사용되기 전에 또는 사용 후 사용 후 A를 증가시킬 수 있음을 의미합니다. 프로그램에서 의존 할 수없는 예측할 수없는 동작을 생성합니다.기본적으로 진술이 컴파일러에 의해 일관되게 평가되고 실행되도록하는 방법으로 볼 수 있습니다.또한 정의 된 동작을 예측할 수 있기 때문에 컴파일러는 최적화 전략을 사용할 수 있습니다.C 언어 표준 내에서, 시퀀스 포인트의 세 가지 주요 인스턴스, 즉 함수가 실행을 시작할 때, 논리 연산자와 쉼표의 지점에서, 그리고 대부분의 C 문장에서와 같이 세미콜론으로 끝나는 완전한 표현식의 끝에서.