當字串常數轉換為 char* 時,GCC 4.3 會發出警告。對於開發具有大量這種已棄用轉換實例的大型程式碼庫的開發人員來說,手動更新所有受影響的程式碼可能會令人畏懼。本文介紹如何在不影響程式碼品質的情況下抑制這些警告。
解:
根本問題源自於將字串文字作為參數傳遞給需要 char。要解決警告,應修改這些函數以接受 const char。
說明:
字串文字是不可變的並儲存在唯讀中記憶體段。嘗試修改這些字串常數(例如透過放棄常數)是未定義的行為。因此,當字串文字傳遞給可能修改它們的函數時,必須使用 const char* 作為參數類型。範例:
考慮以下程式碼:void print(char* ch); int main() { print("Hello"); return 0; }
參數。若要在保留預期行為的同時停用警告,請修改函數以接受 const char,如下所示:
以上是如何消除有關已棄用字串常數轉換的 GCC 4.3 警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!