我使用Xcode的Refactor > Rename
命令來嘗試和C.Xcode聲明「this」是C中的保留語言關鍵字?
this
它聲稱this
是「保留的語言關鍵字」,但是,盡我的理解,它不是。
這是Xcode中的錯誤嗎?或者我錯過了什麼?
我使用Xcode的Refactor > Rename
命令來嘗試和C.Xcode聲明「this」是C中的保留語言關鍵字?
this
它聲稱this
是「保留的語言關鍵字」,但是,盡我的理解,它不是。
這是Xcode中的錯誤嗎?或者我錯過了什麼?
它不是C99中的保留字,而是C++ 98中的保留字。
這不是一個錯誤。
即使this
未在C中保留,命名這樣的變量也是一個非常糟糕的主意。 C代碼可以與C++混合使用。在這種情況下,你的程序將不能編譯。
所以不要使用此,即使C.
如果你真的想要,你可以做一個標準的搜索和替換,而不是重構。但是,再次,糟糕的主意。
「this」也是Java中的關鍵字。我不知道Xcode 4,但您也可以使用以前的版本進行Java開發。這可能是一些電線越來越...
不知道爲什麼投票,但我想我會澄清我的答案的原因。不知道低調選民是否有相同的禮貌意識? –
好吧,我會給你+1,因爲我覺得你幾乎可以說其他人都是這樣 - Xcode在「重構」工具中考慮了其他語言。感謝您花時間查看問題併發布回覆! – Steve
嘿 - 感謝憐憫加。 ;-)它絕對是一種以多種語言寫成的保留字 - 我的「貢獻」就是Java至少*曾經是Xcode支持的語言。 –
IMO它稍微好一點,如果你的'.c'文件*不*編譯爲C++。如果他們這樣做,那麼誰負責確保他們實際工作(即具有相同的行爲)?將他們編譯爲C++的人可能認爲你是,但是你真的會把這種努力付諸實踐並測試它嗎?如果沒有,那麼只要確保公共'.h'文件可以在C++中使用(所以不要在這裏使用'this'作爲參數名稱)。不要採取行動,如果您不支持編譯爲C++而沒有正確執行。並且不要支持它:編寫雙語言代碼是毫無意義的。 –
感謝您的解釋。如果我有用typedef構造來操作的方法,並且像其他語言中的實例方法那樣工作,我想標準化第一個this參數的名稱。關於備用名稱的建議?我假設Xcode出於類似的原因會拒絕'self'(objective-c)。 – Steve
這是一個錯誤。 C和C++不是相同的語言,調用'this'「保留的語言關鍵字」簡直是錯誤的。 –