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; }
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!