Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Selesaikan ralat kompilasi C++: 'pembolehubah' pengecam yang tidak diisytiharkan, bagaimana untuk menyelesaikannya?

Selesaikan ralat kompilasi C++: 'pembolehubah' pengecam yang tidak diisytiharkan, bagaimana untuk menyelesaikannya?

WBOY
WBOYasal
2023-08-26 15:13:042774semak imbas

解决C++编译错误:'undeclared identifier 'variable'',如何解决?

Selesaikan ralat kompilasi C++: 'pembolehubah' pengecam yang tidak diisytiharkan, bagaimana untuk menyelesaikannya?

Apabila pengaturcaraan dalam C++, kita sering menghadapi pelbagai ralat kompilasi. Salah satu daripada ini ialah apa yang dipanggil ralat "pengecam tidak diisytiharkan", di mana pengkompil tidak mengenali pengecam pembolehubah. Ralat ini biasanya menyebabkan program gagal untuk menyusun dengan jayanya. Dalam artikel ini, kami akan membincangkan beberapa punca biasa masalah ini dan menerangkan cara menyelesaikannya.

1. Penamaan pembolehubah yang salah

Sebab yang paling biasa ialah nama pembolehubah itu salah. Apabila kita menggunakan pembolehubah dalam kod, kita mesti mengisytiharkan pembolehubah sebelum kita boleh menggunakannya. Jika kami menggunakan pembolehubah yang tidak diisytiharkan dalam kod kami, pengkompil akan melaporkan ralat. Contohnya:

#include <iostream>

int main() {
    std::cout << variable << std::endl;
    return 0;
}

Dalam kod di atas, kami cuba mengeluarkan nilai pembolehubah bernama "pembolehubah". Walau bagaimanapun, pembolehubah ini tidak pernah diisytiharkan dalam kod, jadi pengkompil membuang ralat. Untuk menyelesaikan masalah ini, kita perlu mengisytiharkan pembolehubah ini sebelum kita boleh menggunakannya. Contohnya:

#include <iostream>

int main() {
    int variable;
    variable = 10;
    std::cout << variable << std::endl;
    return 0;
}

Dalam kod tetap ini, kami mula-mula mengisytiharkan pembolehubah integer "pembolehubah", kemudian memberikannya nilai 10 dan mengeluarkan nilainya.

2. Skop pembolehubah adalah salah

Sebab lain yang mungkin adalah skop pembolehubah adalah salah. Skop merujuk kepada julat pembolehubah yang boleh dilihat dalam kod. Jika pembolehubah diisytiharkan dalam skop, ia tidak boleh diakses di luar skop tersebut. Contohnya:

#include <iostream>

void myFunction() {
    int variable = 10;
}

int main() {
    std::cout << variable << std::endl;
    return 0;
}

Dalam kod di atas, kami mengisytiharkan pembolehubah integer "pembolehubah" dalam fungsi myFunction, dan kemudian cuba mengeluarkan nilainya dalam fungsi utama. Walau bagaimanapun, pengkompil akan melaporkan ralat disebabkan isu skop pembolehubah. Untuk menyelesaikan masalah ini, kita perlu memindahkan pengisytiharan pembolehubah ke dalam skop fungsi utama. Contohnya:

#include <iostream>

void myFunction() {
    // 什么也不做
}

int main() {
    int variable = 10;
    std::cout << variable << std::endl;
    return 0;
}

Dalam kod tetap ini, kami mengalihkan pengisytiharan pembolehubah ke dalam skop fungsi utama, menjadikannya kelihatan dalam fungsi utama.

3. Lokasi pengisytiharan pembolehubah adalah salah

Sebab lain yang mungkin adalah pembolehubah diisytiharkan di lokasi yang salah. Dalam C++, pengisytiharan pembolehubah biasanya harus diletakkan pada permulaan fungsi atau blok kod. Jika kami mengisytiharkan pembolehubah di tengah atau di hujung kod, pengkompil tidak akan mengenalinya. Contohnya:

#include <iostream>

int main() {
    std::cout << variable << std::endl;

    int variable = 10;

    return 0;
}

Dalam kod di atas, kami cuba mengeluarkan nilai pembolehubah bernama "pembolehubah". Walau bagaimanapun, pembolehubah ini diisytiharkan sebelum pernyataan output, jadi pengkompil tidak mengenalinya dan melaporkan ralat. Untuk menyelesaikan masalah ini, kita perlu meletakkan pengisytiharan pembolehubah sebelum menggunakannya. Contohnya:

#include <iostream>

int main() {
    int variable = 10;
    std::cout << variable << std::endl;

    return 0;
}

Dalam kod tetap ini, kami meletakkan pengisytiharan pembolehubah sebelum pernyataan output supaya ia boleh dikenali dengan betul oleh pengkompil.

Ringkasan

Dalam pengaturcaraan C++, apabila ralat kompilasi menggesa "pembolehubah' pengecam yang tidak diisytiharkan", kita harus terlebih dahulu menyemak sama ada terdapat masalah seperti ralat penamaan pembolehubah, ralat skop pembolehubah atau ralat lokasi pengisytiharan berubah dalam kod. Dengan menyelesaikan masalah dan membetulkan ralat ini dengan teliti, kami boleh membuat atur cara menyusun dengan jayanya dan berjalan dengan lancar.

Bahan rujukan:

  1. C++ Programming Language (Edisi Keempat), Bjarne Stroustrup, Machinery Industry Press, 2014
  2. C++ Primer (Edisi Kelima), Stanley B. Lippman et al., Machinery Industry Press, 2013

Atas ialah kandungan terperinci Selesaikan ralat kompilasi C++: 'pembolehubah' pengecam yang tidak diisytiharkan, 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