首頁 > 後端開發 > C++ > 如何處理 GCC 從字串常數到「char*」的棄用轉換警告?

如何處理 GCC 從字串常數到「char*」的棄用轉換警告?

Susan Sarandon
發布: 2024-12-05 11:20:12
原創
608 人瀏覽過

How to Handle GCC's Deprecated Conversion Warnings from String Constant to `char*`?

如何解決有關從字串常數到「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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板