Hari ini, kita akan melihat masalah biasa dalam pengaturcaraan C++-ralat sintaks yang disebabkan oleh fungsi yang tidak mengembalikan nilai, dan cara mengubah suainya.
Dalam pengaturcaraan C++, kita selalunya perlu mentakrifkan fungsi dan memanggilnya di lokasi yang berbeza dalam program Pada masa ini, kita perlu memberi perhatian kepada nilai pulangan fungsi tersebut. Jika fungsi ditakrifkan mempunyai nilai pulangan, maka nilai yang sepadan mesti dikembalikan selepas fungsi itu dilaksanakan. Jika tidak, pengkompil akan mengeluarkan ralat mengatakan "Fungsi tidak mempunyai nilai pulangan".
Sekarang, mari lihat contoh mudah:
#include <iostream> using namespace std; int sum(int a, int b) { int c = a + b; } int main() { int a = 1, b = 2; int result = sum(a, b); cout << result << endl; return 0; }
Dalam kod di atas, kami mentakrifkan jumlah fungsi untuk mengira jumlah dua integer. Walau bagaimanapun, dalam pelaksanaan fungsi, kami hanya mengira jumlah dua nombor tetapi tidak mengembalikannya. Oleh itu, apabila kita menyusun, pengkompil akan menggesa ralat:
错误 C4716: 'sum': 必须返回值
Untuk membetulkan ralat ini, kita boleh menambah nilai pulangan pada jumlah fungsi. Dalam contoh ini, kita perlu mengembalikan jumlah dua nombor, jadi kita boleh menukar pengisytiharan fungsi kepada bentuk berikut:
int sum(int a, int b) { int c = a + b; return c; }
Pada masa ini, apabila kita menyusun semula kod itu, kita akan mengelakkan ralat sintaks "fungsi mempunyai tiada nilai pulangan".
Selain menambah nilai pulangan ke fungsi, kami juga boleh menggunakan kata kunci void untuk mentakrifkan fungsi tanpa nilai pulangan. Kata kunci void diperlukan dalam pengisytiharan fungsi dan definisi fungsi. Kod yang diubah suai adalah seperti berikut:
#include <iostream> using namespace std; void printMessage() { cout << "Hello World!" << endl; } int main() { printMessage(); return 0; }
Dalam contoh ini, kami mentakrifkan fungsi printMessage tanpa nilai pulangan untuk mengeluarkan mesej. Perlu diingatkan bahawa tidak perlu menambah pernyataan pulangan dalam badan fungsi kerana fungsi itu sendiri tidak mempunyai nilai pulangan.
Ringkasnya, sama ada anda mentakrifkan fungsi dengan nilai pulangan atau fungsi tanpa nilai pulangan, anda perlu memberi perhatian kepada struktur sintaksnya semasa menulis kod untuk mengelakkan ralat "fungsi tidak mempunyai nilai pulangan".
Atas ialah kandungan terperinci Ralat sintaks C++: fungsi tidak mempunyai nilai pulangan, bagaimana saya harus mengubah suainya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!