Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ralat kompilasi C++: Tugasan struktur yang tidak ditentukan tidak boleh dibuat, bagaimana untuk menyelesaikannya?

Ralat kompilasi C++: Tugasan struktur yang tidak ditentukan tidak boleh dibuat, bagaimana untuk menyelesaikannya?

王林
王林asal
2023-08-22 11:13:561856semak imbas

Ralat kompilasi C++: Tugasan struktur yang tidak ditentukan tidak boleh dibuat, bagaimana untuk menyelesaikannya?

Ralat biasa berlaku semasa menyusun atur cara C++ Salah satu ralat biasa ialah "tugasan struktur yang tidak ditentukan tidak boleh dilakukan". Ralat ini biasanya disebabkan oleh memanggil pembolehubah struktur yang tidak ditentukan atau tidak diisytiharkan dalam program, yang menghalang pengkompil daripada melaksanakan operasi penetapan struktur.

Untuk menyelesaikan masalah ini, kita perlu mempunyai pemahaman yang lebih baik tentang struktur dan tugasan struktur, dan memilih penyelesaian yang berbeza untuk situasi yang berbeza. Di bawah, kami akan memperkenalkan secara terperinci bagaimana untuk menyelesaikan masalah "tugasan struktur yang tidak ditentukan tidak dapat dilakukan".

1. Fahami struktur dan tugasan struktur

Struktur ialah jenis data yang sangat penting dalam C++, yang biasanya digunakan untuk menerangkan beberapa objek entiti yang kompleks. Dalam C++, struktur boleh mengandungi pembolehubah pelbagai jenis, seperti integer, titik terapung, aksara, dll.

Penugasan struktur merujuk kepada memberikan nilai satu pembolehubah struktur kepada pembolehubah struktur yang lain, seperti:

struct person
{
    int age;
    char name[20];
};

int main()
{
    person p1, p2;
    p1.age = 20;
    strcpy(p1.name, "Jack");
    p2 = p1; //结构体赋值
    return 0;
}

Dalam contoh di atas, kami mentakrifkan struktur seseorang, termasuk dua pembolehubah, umur dan nama. Kemudian, kami mentakrifkan pembolehubah jenis dua orang p1 dan p2 dalam fungsi utama Selepas memberikan nilai kepada p1, kami menetapkan nilainya kepada p2. Ini adalah operasi penetapan struktur.

2. pembolehubah struktur ditemui, pengkompil tidak akan dapat melaksanakan tugasan struktur, dan akan melaporkan ralat "Tidak dapat melaksanakan tugasan struktur yang tidak ditentukan".

Jadi, apabila kita mendapat ralat ini, kita perlu menyemak dahulu sama ada struktur yang kita gunakan telah ditakrifkan dengan betul. Kita boleh menyemak perkara berikut:

(1) Sama ada nama struktur adalah betul

(2) Sama ada sintaks definisi struktur adalah betul

(3) Sama ada pembolehubah struktur ditakrifkan sebelum menggunakannya .

Jika terdapat ralat semasa mentakrifkan struktur, kita harus membetulkan ralat dalam masa dan menyusun semula atur cara.

2. Semak sama ada pembolehubah struktur dinamakan dengan betul

Dalam program, apabila kita mentakrifkan pembolehubah, kita perlu memberi perhatian kepada keunikan nama pembolehubah dan tidak boleh mentakrifkannya berulang kali. Jika kita menamakan pembolehubah struktur sama seperti pembolehubah lain, pengkompil tidak akan dapat mengenali objek yang kita tetapkan dan akan melaporkan ralat "Penugasan struktur tidak ditentukan tidak boleh dibuat".

Oleh itu, kita perlu menyemak sama ada nama pembolehubah itu unik Jika terdapat nama pembolehubah pendua, kita harus mengubah suai dan menyusun semula program dalam masa.

3 Sahkan bahawa pembolehubah struktur ditakrifkan di lokasi yang sesuai

Dalam C++, pembolehubah struktur mesti ditakrifkan sebelum digunakan, jika tidak, pengkompil tidak akan dapat menetapkan nilai struktur. Oleh itu, apabila ralat "Tidak boleh menetapkan kepada struktur tidak ditentukan" berlaku, kami perlu menyemak sama ada pembolehubah struktur kami ditakrifkan di lokasi yang betul. Secara khusus, kita perlu memastikan perkara berikut:

(1) Sama ada pembolehubah struktur ditakrifkan sebelum digunakan

(2) Sama ada pembolehubah struktur dimasukkan dalam skop yang betul

(3) Sama ada pembolehubah Struktur dimulakan; dengan betul.

Jika kami mendapati terdapat masalah dengan lokasi definisi pembolehubah struktur, kami harus meletakkannya di lokasi yang betul dan menyusun semula atur cara.

4. Gunakan penunjuk struktur dengan betul dalam program

Dalam C++, kita boleh melakukan operasi penugasan struktur dengan menentukan penunjuk kepada struktur. Walau bagaimanapun, jika ralat berlaku semasa menggunakan penunjuk, pengkompil tidak akan dapat melaksanakan tugasan struktur dan melaporkan ralat "Tidak dapat melaksanakan tugasan struktur tidak ditentukan".

Oleh itu, apabila menggunakan penunjuk struktur, kita perlu memberi perhatian kepada beberapa isu:

(1) Sama ada struktur yang ditunjuk oleh penunjuk telah ditakrifkan dengan betul

(2) Sama ada penunjuk telah dimulakan atau ditetapkan dengan betul ;

(3) Sama ada tugasan struktur dilakukan sebelum penunjuk menghala ke struktur.

Jika masalah ini wujud, kita perlu berhenti menggunakan penunjuk struktur dan mengubah suai atur cara.

3. Ringkasan

Semasa proses penyusunan program C++, adalah situasi yang sangat biasa bahawa ralat "Tidak boleh menetapkan struktur yang tidak ditentukan" muncul. Jika kita menghadapi ralat seperti ini, kita perlu menganalisis dengan teliti punca dan memilih penyelesaian yang betul mengikut situasi yang berbeza. Melalui artikel ini, saya percaya semua orang telah memahami cara menyelesaikan ralat "tugasan struktur yang tidak ditentukan tidak dapat dilakukan" dengan betul.

Atas ialah kandungan terperinci Ralat kompilasi C++: Tugasan struktur yang tidak ditentukan tidak boleh dibuat, bagaimana untuk menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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