2013-06-22 70 views
1

所以我跟蹤在目標C++爲iOS的錯誤這個代碼目標C++ for循環多個初始化失敗

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

「最大= 0;」不會發生。我在循環之前移動了初始化,現在一切都很好。

這是用Xcode 4.6.3。這是不正常的C行爲?

回答

4

您正在創建一個名爲max的新變量,其範圍僅對for循環可見。 所以一旦你走出循環,你在循環內計算的最大值在其外面是不可見的。 希望有所幫助。

+1

'-Wshadow'警告(「隱藏的局部變量」)將會捕捉到這個。它會抱怨'for'循環聲明瞭一個名爲'max'的新變量,它影響了你現有的變量。 –