Assignemt Operator's Chain Rule

MySprtlty·2022년 12월 21일
1

C

목록 보기
33/37

🏷️금지 rule

📌1. 두 sequence point 사이에서, 동일한 object가 2번 이상 수정한다면 금지

  • ex)
    • x++로 object x가 1번 수정
    • assigenmt operator(=)의 좌측 피연산자로 사용되는 obejct x가 1번 수정
x = x * x++;

📌2. 두 sequence point 사이에서, 동일한 object가 1번 수정 & 1번 접근된다면 금지

  • ex)
    • x++로 object x를 1번 수정
    • x로 obejct x를 1번 접근
y = x * x++;

🏷️예외 rule

📌1. 두 sequence point 사이에서, 특정 object를 1번 접근하는 용도가 그 object에 저장될 새로운 값을 계산하는 것이라면 허용

  • ex)
    • =의 우측 피연산자에서 x가 1번 접근
    • =의 좌측 피연산자에서 x가 1번 수정
    • 원래라면 두번 째 금지 rule에 의해 금지되어야 한다.
    • 그러나, obejct x에 대한 접근의 목적이 object x의 값을 새로 계산하기 위함이기에 예외적으로 허용된다.
x = x + 1;

0개의 댓글