Precedence

우선순위 괄호 전략

C++ 연산자는 우선순위와 결합 방향이 촘촘하다. 컴파일러는 정확히 해석하지만, 사람에게 모호하면 괄호로 의도를 고정해야 유지보수자가 같은 묶음으로 읽는다.

01

의미 단위를 묶는다

비교, 논리, 산술이 섞이면 규칙 암기보다 괄호가 리뷰 시간을 줄인다.

02

부작용 분리

++i와 함수 호출을 한 식에 몰아넣으면 평가 순서 착각이 생긴다.

03

조건식을 읽게 만든다

보안이나 경계 검사 조건은 한눈에 실패 조건이 보이도록 나눈다.

&& vs ||
단락 평가 왼쪽 결과로 오른쪽 평가가 생략될 수 있다.
null 검사 뒤 접근에 사용된다.
=
오른쪽 결합 a = b = c는 오른쪽부터 묶인다.
의도적 체인이 아니면 나눈다.
<<
출력과 shift stream 출력과 비트 shift가 같은 기호라 문맥이 중요하다.
혼합 식은 피한다.
?:
조건 선택 중첩 삼항은 읽기 비용이 빠르게 커진다.
if로 바꾸는 편이 낫다.

혼합 조건 · 부작용 · 리뷰 가능성 점검

혼합 조건 비교와 논리가 섞인 식에 의도 단위 괄호가 있는가.
부작용 한 표현식 안에서 같은 변수를 여러 번 변경하지 않는가.
리뷰 가능성 규칙을 모르는 동료도 식의 의미를 곧바로 읽을 수 있는가.

괄호로 의도 표시

if ((index < size) && (buffer[index] == target)) {
    return true;
}