2011-08-16 42 views
1

我得到錯誤的C(錯誤 - 未使用的變量)變量當我鍵入下面的代碼未使用的變量錯誤..簡單的問題

int i=10; 

,但是當我這樣做(把它分解成兩個語句)

int i; 
i=10; 

錯誤消失

..我現在用的Xcode(版本4.1)(MacOSX的獅).. 一些錯誤的Xcode ....

回答

5

編譯器只是警告你,你聲明瞭一個變量,而你沒有使用它,沒有什麼不對。
這只是一個警告,不是一個錯誤。
雖然沒有什麼不對,但你必須避免聲明你不需要的變量,因爲它們只是佔用內存,並在首先不需要的時候增加開銷。

+0

感謝您的幫助隊友.. –

1

編譯器不是錯誤,但它缺少打印有意義錯誤的機會。

顯然它會警告你是否聲明瞭一個變量,但從來沒有「使用它」 - 併爲它賦值就有資格使用它。這兩個代碼片段是等價的;第一個恰好使編譯器能夠更容易地檢測到問題。

可能發出一個警告,它的值永遠不會被讀取。如果在更高的優化級別上這樣做,我不會感到驚訝。 (優化所需的分析對於發現這類問題也很有用。)

編譯器根本無法檢測到全部這種類型的可能的問題;這樣做等同於解決停機問題。 (我認爲)。這就是語言標準通常不需要像這樣的警告的原因,不同的編譯器花費不同的工作量檢測這些問題。

(實際上,編譯器可能會檢測所有未使用的變量的問題,但在某些誤報的代價,即發出了警告的情況下那裏是不是一個真正的問題。)

+0

感謝您的幫助.. –