쉼표 연산자는 C ++에서 어떻게 작동합니까?
예를 들어 내가하면 :
a = b, c;
결국 b 또는 c와 같습니까?
(예, 이것이 테스트하기 쉽다는 것을 알고 있습니다-누군가가 대답을 빨리 찾을 수 있도록 여기에 문서화하십시오.)
업데이트 : 이 질문은 쉼표 연산자를 사용할 때 뉘앙스를 드러 냈습니다. 이것을 문서화하기 만하면됩니다.
a = b, c; // a is set to the value of b!
a = (b, c); // a is set to the value of c!
이 질문은 실제로 코드의 오타에서 영감을 얻었습니다. 의도 된 것
a = b;
c = d;
로 전환
a = b, // <- Note comma typo!
c = d;
a = (b, c);
.
a = b, c = d;
실제로 의도 한 것과 동일한 성능을 발휘 a = b; c = d;
합니까?
b
와 d
함수 사용 (수정) 것으로 평가 일반적인 상태이며, 실행 순서는까지 정의되지 않는다 C++17
.