Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengendalikan Amaran Penukaran Ditamatkan GCC daripada String Constant kepada `char*`?

Bagaimana untuk Mengendalikan Amaran Penukaran Ditamatkan GCC daripada String Constant kepada `char*`?

Susan Sarandon
Lepaskan: 2024-12-05 11:20:12
asal
658 orang telah melayarinya

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

Cara Mengatasi Amaran Mengenai Penukaran Ditamatkan daripada String Constant kepada 'char*'

Dalam versi GCC sebelum 4.3, seseorang boleh mengisytiharkan pembolehubah dengan char * taip dan kemudian berikannya rentetan literal. Walau bagaimanapun, GCC 4.3 dan kemudiannya menafikan amalan ini dengan amaran. Cara yang betul untuk melakukan ini ialah dengan mengisytiharkan pembolehubah sebagai const char *, tetapi jika anda mempunyai pangkalan kod yang besar dan tidak mahu membetulkan semua kejadian sekaligus, terdapat cara untuk menyekat amaran.

Untuk menyekat amaran ini, tukar jenis mana-mana fungsi yang anda hantar literal rentetan daripada char * kepada const char *. Ini ialah cara yang betul untuk melakukannya, jadi jika anda akan membetulkan sesuatu, betulkan dengan betul.

Sebab penamatan ini ialah literal rentetan adalah daripada jenis const char * dan membuangnya const untuk mengubah suai mereka adalah tingkah laku yang tidak ditentukan. Untuk mengubah suai rentetan, anda perlu menyalin const char * rentetan aksara demi aksara ke dalam rentetan char * yang diperuntukkan secara dinamik.

Berikut ialah contoh cara melakukannya dengan betul:

#include <iostream>

void print(char* ch);

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

int main() {
    print("Hello");
    return 0;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Amaran Penukaran Ditamatkan GCC daripada String Constant kepada `char*`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan