我非常經常將指針作爲函數參數傳遞給只讀參數(例如結構體等)。例如,在這個構造函數中:爲什麼很少有人輸入常量正確的代碼?將const更正/更快的代碼編譯?
Chunk::Chunk(const string& text, COLOR * background, COLOR * foreground);
我用這種方式(不是const-correct),因爲我認爲它更容易閱讀。 不過,我開始覺得這是骯髒的,做相反:
Chunk::Chunk(const string& text, const COLOR * const background,
const COLOR * const foreground);
這似乎很難理解在第一,但只有等到你使用它。我的問題:
爲什麼沒有人這樣做是正確的? (我見過這樣的小代碼) 編譯好了/更小/更快?
我做知道有什麼區別,但我真的不在意不同的語義,因爲任何人閱讀代碼可以看到參數是隻讀的。 (誰會改變一個指針地址?)
我做知道我可以使用引用來代替,但我們假設我不想(或我在純C)。
也許除非你需要一份 –
我不同意你應該寫'常量字符串和text'。與我們合作的大多數人對我們的代碼的成本正確性非常嚴格。 –
我不認爲,這真的是一個技術問題,爲什麼有人寫一個錯誤的代碼 –