2009-05-28 54 views
1

我最近加入了一個小型MCF C++應用程序,顯然它處於工作狀態。爲了開始,我在代碼上運行PC-Lint,lint抱怨CStringT被傳遞給了Format。互聯網上的觀點似乎有分歧。有人說CSting的設計是爲了處理這個用例而沒有錯誤,但是其他人(和一個MSDN article)說它應該總是在被傳遞給一個可變參數函數的時候被拋出。Stackoverflow能夠就這個問題達成任何共識嗎?我應該將一個CString傳遞給Format/printf(以及一般的可變參數)嗎?

回答

3

CString經過精心設計,可以作爲變量參數列表的一部分傳遞,因此可以安全地使用它。並且您可以確信Microsoft會小心不要打破這種特定行爲。所以我會說你是安全地繼續使用它,如果你想要的話。

這就是說,我個人更喜歡cast。這是不常見的行爲,字符串類的行爲方式(例如std :: string不)和心理上的一致性可能會更好,只是以「安全」的方式做到這一點

P.S .:請參閱此thread獲取實施細節和關於如何投射的進一步說明。

相關問題