如何解決有關從字串常數到「char*」的已棄用轉換的警告
在4.3 之前的GCC 版本中,可以使用char * 聲明變數輸入,然後為其指派一個字串文字。然而,GCC 4.3 及更高版本不贊成這種做法並發出警告。正確的方法是將變數宣告為 const char *,但如果您有一個很大的程式碼庫並且不想一次修復所有實例,有一種方法可以抑制警告。
要抑制這些警告,請將傳遞字串文字的任何函數的類型從 char * 變更為 const char *。無論如何,這是正確的方法,所以如果您要修復某些問題,請正確修復它。
這種棄用的原因是字串文字是 const char * 類型,並且拋棄了const 來修改它們是未定義的行為。若要修改字串,您需要將 const char * 字串逐個字元複製到動態指派的 char * 字串中。
以下是如何正確執行此操作的範例:
#include <iostream> void print(char* ch); void print(const char* ch) { std::cout << ch; } int main() { print("Hello"); return 0; }
以上是如何處理 GCC 從字串常數到「char*」的棄用轉換警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!