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
611 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!

sumber:php.cn
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