2011-09-09 79 views

回答

3

它不是C99中的保留字,而是C++ 98中的保留字。

4

這不是一個錯誤。

即使this未在C中保留,命名這樣的變量也是一個非常糟糕的主意。 C代碼可以與C++混合使用。在這種情況下,你的程序將不能編譯。

所以不要使用此,即使C.

如果你真的想要,你可以做一個標準的搜索和替換,而不是重構。但是,再次,糟糕的主意。

+1

IMO它稍微好一點,如果你的'.c'文件*不*編譯爲C++。如果他們這樣做,那麼誰負責確保他們實際工作(即具有相同的行爲)?將他們編譯爲C++的人可能認爲你是,但是你真的會把這種努力付諸實踐並測試它嗎?如果沒有,那麼只要確保公共'.h'文件可以在C++中使用(所以不要在這裏使用'this'作爲參數名稱)。不要採取行動,如果您不支持編譯爲C++而沒有正確執行。並且不要支持它:編寫雙語言代碼是毫無意義的。 –

+0

感謝您的解釋。如果我有用typedef構造來操作的方法,並且像其他語言中的實例方法那樣工作,我想標準化第一個this參數的名稱。關於備用名稱的建議?我假設Xcode出於類似的原因會拒絕'self'(objective-c)。 – Steve

+1

這是一個錯誤。 C和C++不是相同的語言,調用'this'「保留的語言關鍵字」簡直是錯誤的。 –

0

「this」也是Java中的關鍵字。我不知道Xcode 4,但您也可以使用以前的版本進行Java開發。這可能是一些電線越來越...

+0

不知道爲什麼投票,但我想我會澄清我的答案的原因。不知道低調選民是否有相同的禮貌意識? –

+0

好吧,我會給你+1,因爲我覺得你幾乎可以說其他人都是這樣 - Xcode在「重構」工具中考慮了其他語言。感謝您花時間查看問題併發布回覆! – Steve

+0

嘿 - 感謝憐憫加。 ;-)它絕對是一種以多種語言寫成的保留字 - 我的「貢獻」就是Java至少*曾經是Xcode支持的語言。 –