Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangka sebelum ',' token'?

Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangka sebelum ',' token'?

WBOY
WBOYasal
2023-08-25 19:30:3714932semak imbas

如何解决C++语法错误:'expected primary-expression before ',' token'?

Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangkakan sebelum ',' token'?

Ikhtisar:
Apabila menulis kod C++, kadangkala kita menghadapi pelbagai ralat. Salah satu daripadanya ialah "ungkapan utama yang dijangkakan sebelum token ','" (ungkapan primer tiada sebelum koma). Ralat ini biasanya dikesan semasa penyusunan dan menunjukkan bahawa ungkapan yang sah tiada.

Artikel ini akan meneroka punca ralat ini dan memberikan beberapa penyelesaian serta contoh kod.

Punca:
Kesalahan ini biasanya berkaitan dengan tatabahasa. Ia menunjukkan bahawa di suatu tempat dalam program kami meletakkan koma di mana koma tidak diperlukan. Pengkompil C++ berpendapat bahawa koma harus muncul di antara dua ungkapan, jadi jika kita tidak mempunyai ungkapan sebelum koma, ia akan membuang ralat ini.

Penyelesaian:
Berikut ialah beberapa penyelesaian biasa untuk membantu anda menyelesaikan masalah ini:

  1. Semak di mana koma digunakan:
    Pertama, kita harus mencari di mana ralat berlaku. Kita perlu menyemak kod dengan teliti sebelum dan selepas koma untuk memastikan bahawa koma hanya muncul di antara ungkapan dan setiap koma didahului oleh ungkapan utama yang sah.
  2. Panggilan fungsi yang salah:
    Dalam panggilan fungsi, koma sering digunakan untuk memisahkan parameter. Ralat ini timbul jika kita menggunakan koma dalam panggilan fungsi tanpa memberikan hujah yang sah.

Contohnya:

void foo(int x, int y) {
    // 函数体
}

int main() {
    int a = 1;
    foo(a, ); // 此处缺少有效的参数
    return 0;
}

Dalam contoh di atas, kami terlupa untuk memberikan ungkapan yang sah untuk hujah kedua apabila memanggil fungsi foo. Ini akan menyebabkan pengkompil melaporkan ralat "ungkapan utama yang dijangkakan sebelum token ','".

Untuk menyelesaikan masalah ini, kami perlu menyediakan ungkapan yang sah untuk semua parameter dalam panggilan fungsi.

  1. Operan tiada:
    Dalam sesetengah kes, kami mungkin terlupa untuk memberikan ungkapan yang sah untuk operan sebelum koma. Contohnya, dalam penugasan atau ungkapan operator, koma digunakan untuk memisahkan setiap operan.

Contohnya:

int main() {
    int a, b;
    a = , b; // 此处缺少有效的表达式
    return 0;
}

Dalam contoh di atas, kami terlupa memberikan ungkapan tugasan untuk a sebelum koma. Ini akan menyebabkan pengkompil melaporkan ralat "ungkapan utama yang dijangkakan sebelum token ','".

Untuk menyelesaikan masalah ini, kami harus menyediakan ungkapan yang sah untuk operan sebelum koma.

Contoh Kod:
Berikut ialah beberapa contoh kod yang menunjukkan cara menyelesaikan ralat "ungkapan utama yang dijangkakan sebelum ',' token".

Contoh 1: Betulkan ralat dalam panggilan fungsi

void foo(int x, int y) {
    // 函数体
}

int main() {
    int a = 1;
    int b = 2;
    foo(a, b); // 修复函数调用错误,为所有参数提供有效的表达式
    return 0;
}

Contoh 2: Betulkan ralat operand yang hilang

int main() {
    int a = 1;
    int b = 2;
    a = a + 1, b; // 修复缺少操作数的错误,给逗号之前的操作数提供有效的表达式
    return 0;
}

Ringkasan:
Dalam pengaturcaraan C++, kita mungkin menghadapi pelbagai ralat sintaks. Memahami dan menyelesaikan ralat ini adalah langkah penting untuk menjadi pengaturcara yang lebih baik. Artikel ini menerangkan cara menyelesaikan ralat sintaks C++ "ungkapan utama yang dijangkakan sebelum token ','" dan menyediakan beberapa contoh kod untuk panggilan fungsi dan operan.

Semoga artikel ini membantu anda menyelesaikan masalah ini. Selamat berprogram!

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangka sebelum ',' token'?. 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