Ralat kompilasi C++: Jenis pemulangan fungsi tidak sepadan dengan jenis pemulangan yang diisytiharkan oleh fungsi Bagaimana untuk menyelesaikannya?

WBOY
Lepaskan: 2023-08-21 21:45:05
asal
2657 orang telah melayarinya

Dalam pengaturcaraan C++, ia adalah ralat kompilasi biasa bahawa jenis pemulangan fungsi tidak sepadan dengan jenis pemulangan perisytiharan fungsi. Ralat ini biasanya berlaku kerana pembangun mempunyai beberapa ketidakkonsistenan dalam proses pengisytiharan dan definisi fungsi, seperti ketidakpadanan jenis pemulangan fungsi, nombor parameter atau ketidakpadanan jenis, dsb. Ralat ini sering menyebabkan program gagal untuk menyusun atau berjalan dengan betul, menyebabkan masalah yang besar dalam pembangunan dan penyelenggaraan program.

Jadi, mengapa ralat kompilasi berlaku jika jenis pemulangan fungsi tidak sepadan dengan jenis pemulangan yang diisytiharkan oleh fungsi itu? Ini kerana pengkompil C++ menentukan jenis pemulangan fungsi berdasarkan pengisytiharan fungsi Jika jenis pemulangan fungsi tidak konsisten dengan jenis yang diisytiharkan, pengkompil tidak boleh menentukan jenis pemulangan fungsi, mengakibatkan ralat kompilasi. Oleh itu, untuk menyelesaikan ralat ini, kita perlu mempertimbangkan dua aspek berikut:

  1. Semak sama ada jenis pulangan dalam pengisytiharan dan definisi fungsi adalah konsisten

Apabila jenis pulangan dalam pengisytiharan dan definisi fungsi tidak konsisten, pengkompil akan membuang ralat. Oleh itu, apabila menyelesaikan ralat jenis ini, kita perlu menyemak sama ada jenis pulangan dalam pengisytiharan dan definisi fungsi adalah konsisten. Jika ia tidak konsisten, kita perlu mengubah suai jenis pulangan dalam definisi fungsi untuk menjadikannya sama dengan jenis pulangan dalam pengisytiharan.

Sebagai contoh, dalam kod berikut, jenis pemulangan pengisytiharan fungsi ialah int, tetapi jenis pemulangan dalam definisi fungsi adalah tidak sah, yang akan menyebabkan ralat penyusunan:

// 函数声明 int add(int a, int b); // 函数定义 void add(int a, int b) { int c = a + b; return c; }
Salin selepas log masuk

Takrifan fungsi yang betul hendaklah seperti ini:

int add(int a, int b) { int c = a + b; return c; }
Salin selepas log masuk
  1. Semak fungsi Adakah penyata pulangan dan jenis nilai pulangan konsisten Selain jenis pemulangan yang tidak sepadan, pengkompil juga akan membuang ralat jika penyataan pemulangan fungsi dan jenis nilai pulangan tidak konsisten. Oleh itu, apabila menyelesaikan ralat ini, kita perlu menyemak sama ada penyata pulangan dan jenis nilai pulangan fungsi adalah konsisten. Jika ia tidak konsisten, kita perlu mengubah suai penyata pulangan atau jenis nilai pulangan untuk menjadikannya konsisten.
Sebagai contoh, dalam kod berikut, jenis nilai pulangan fungsi adalah int, tetapi pernyataan pulangan mengembalikan nilai jenis char, yang juga akan menyebabkan ralat penyusunan:

int get_value() { char ch = 'A'; return ch; }
Salin selepas log masuk

Pelaksanaan fungsi yang betul sepatutnya seperti ini :

int get_value() { int i = 10; return i; }
Salin selepas log masuk
Ringkasnya, apabila kita menghadapi ralat kompilasi di mana jenis pemulangan fungsi tidak sepadan dengan jenis pemulangan perisytiharan fungsi, mula-mula kita perlu menyemak sama ada jenis pemulangan dalam perisytiharan dan definisi fungsi adalah konsisten. Jika ia konsisten tetapi masih terdapat ralat, anda perlu menyemak sama ada penyata pulangan dan jenis nilai pulangan fungsi adalah konsisten. Hanya apabila kedua-duanya sepadan, pengkompil boleh menentukan jenis pemulangan fungsi dengan betul, supaya keseluruhan program boleh menyusun dan berjalan dengan lancar.

Atas ialah kandungan terperinci Ralat kompilasi C++: Jenis pemulangan fungsi tidak sepadan dengan jenis pemulangan yang diisytiharkan oleh fungsi Bagaimana untuk menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!