ホームページ > バックエンド開発 > C++ > GCC の非推奨の文字列定数から `char*` への変換警告を処理するにはどうすればよいですか?

GCC の非推奨の文字列定数から `char*` への変換警告を処理するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-05 11:20:12
オリジナル
630 人が閲覧しました

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 * string を動的に割り当てられた char * string に 1 文字ずつコピーする必要があります。

これを正しく行う方法の例を次に示します。

#include <iostream>

void print(char* ch);

void print(const char* ch) {
    std::cout << ch;
}

int main() {
    print("Hello");
    return 0;
}
ログイン後にコピー

以上がGCC の非推奨の文字列定数から `char*` への変換警告を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート