2013-06-22 3 views
1

그래서 내가목적 C++는 초기화

for(int i = (maxBin - 4), max = 0; i <= (maxBin + 3); i++) { 
     max += (fftValLeft[i] * fftValLeft[i]); 
    } 

은 "최대 = 0;"이 코드로 iOS 용 목적 C++의 버그를 추적 실패 일어나지 않는다. 루프 이전에 초기화를 옮겼고 이제는 모두 훌륭합니다.

이것은 Xcode 4.6.3입니다. 어떻게 든 정상적인 C 동작입니까?

답변

4

범위는 for 루프에만 표시되는 max라는 새 변수를 만듭니다. 그래서 루프 밖으로 나오면 루프 내부에서 계산 한 최대 값은 루프 외부에서 볼 수 없습니다. 도움이 되길 바랍니다.

+1

'-Wshadow' 경고 ("숨겨진 지역 변수")가 이것을 잡아냅니다. 'for' 루프가 기존 변수를 감추는'max'라는 새로운 변수를 선언하고 있다고 불평 할 것입니다. –