文字列定数から '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 サイトの他の関連記事を参照してください。