2011-02-01 2 views
0

포스트 증가 연산자는 언제 증가에 영향을 줍니까? http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_015.htm에서시퀀스 포인트에 대한 포스트 증분

1) : 나는이 개 의견에 걸쳐 온

POST 수단은 할당 작업 후 작업을 수행합니다.

2) 가까이 집, answer on SO (++ C에 불구하고)는 말한다 :

는 ... 그 표현 (다음 시퀀스 점)이 끝날 때까지 증가 지연됩니다.

따라서 시퀀스 지점에 도달 할 때까지 포스트 증가 작업 ...

A)는 대기 않습니다 또는

B)는 전에 언제 발생) 할당 연산자 또는

C를 게시 할 일 시퀀스 포인트?

답변

5

올바른 해석은 C입니다.

피연산자의 저장된 값을 업데이트하는 부작용 전후의 사이에 발생한다 : 증가 특별히 C 표준 (C99, 6.5.2.4, 2)이 말한다 다음 시퀀스 지점 전에 언제 일어나는 다음 시퀀스 포인트.

단락 전체 인용은 :

후위 결과 ++ 연산자는 피연산자의 값이다. 결과가 이 된 후에, 피연산자의 값이 증가합니다. 즉, 적절한 유형의 값 1이 추가됩니다. 포인터에 대한 제약 조건, 유형 및 변환 및 연산 효과에 대한 자세한 내용은 덧셈 연산자 및 복합 할당 에 대한 설명을 참조하십시오. 피연산자의 저장된 값을 갱신하는 부작용은 사이의 이전 및 다음 시퀀스 포인트 사이에서 발생합니다.

+0

그래서,'i = 0; a [i ++] = 10;'undefined '로 세미콜론 앞에 언제나 올 수 있습니다. –

+0

@crypto : 아니요, 값은 증가하기 전에 검색됩니다. 내 대답에 단락의 전체 견적을 추가했습니다. – Hasturkun

0

증가 작업은 증가 연산자가 사용되는 표현식에 관계없이 다음 시퀀스 포인트 이전에 항상 발생합니다. 자세한 정보는이 링크를 참조하십시오. http://en.wikipedia.org/wiki/Sequence_point

관련 문제