비교 연산자 대신 할당 연산자를 잘못 사용할 수있는 위치에 경고를 플래그로 표시해야하는 C++ 컴파일러 프로젝트를 수행하고 있습니다. 내가 a
이 10
경우에만 사실 싶어 반면 if
성명에서 항상 true
을 초래할 것이다 (a
= 10
) 경우 .e.g 을 변수 a
10
로를 확인하기 위해, if
성명에서 비교를하는 동안 때때로 우리는 잘못 입력합니다. 내가 생각할 수있는 사례 중 일부는 다음과 같습니다비교 연산자 대신 잘못 할당 연산자를 사용할 수있는 곳 = Vs ==
if(var = a)
, 논리적으로는if(var==a)
while(var = a)
for(;var=a;)
do{}while(var=a)
var=a? "some XYZ": "some ABC"
당신이 날 도와주세요 수 있어야한다 더 많은 경우와 함께 사용자가 ==
을 사용하게되어 실수로 =
이 사용 된 논리 오류가 발생할 수 있습니까?
할당 대신 비교가 사용 된 경우는 다른 점은 어떻습니까? 나는 몇 번 봤어. –
"문제"에 관해서는, 몇몇 컴파일러가이를 감지하고 그것에 대해 경고 할 수 있습니다. 그리고 그러한 문제 (그리고 더 많은 것들)를 탐지 할 수있는 많은 통계 분석 도구가 있습니다. –
내가 너라면 이걸로 내 시간을 낭비하지 않을 것이다. 때로는 문자열 복사 관용법과 같이 루프 조건문으로 할당을 원할 수도 있습니다. 때로는 일반적으로 과제를 쓸 때 비교를 원합니다. 이럴 (IMHO) 사람들은 그 차이를 드럼에 담아 야합니다. – Bathsheba