Rumah >pembangunan bahagian belakang >C++ >Mengapa Kemasukan Berbilang Fail Pengepala Menyebabkan Ralat 'Definisi Berbilang' dalam C ?
Berbilang Takrifan Pembolehubah dalam C
Dalam C , mentakrifkan pembolehubah berbilang kali boleh membawa kepada ralat penyusunan. Isu ini boleh timbul apabila berbilang fail menyertakan fail pengepala, menghasilkan berbilang takrifan pembolehubah yang sama.
Pertimbangkan senario berikut:
// FileA.cpp #include "FileA.h" int main() { hello(); return 0; }
// FileA.h #ifndef FILEA_H_ #define FILEA_H_ void hello(); #endif
// FileB.cpp #include "FileB.h"
// FileB.h #ifndef FILEB_H_ #define FILEB_H_ int wat; void world(); #endif
Semasa menyusun kod ini, anda mungkin menghadapi ralat "takrifan berbilang wat'" kerana kedua-dua FileA.h dan FileB.h mentakrifkan pembolehubah wat`.
Penyelesaian:
Untuk menyelesaikan isu ini, kita boleh menggunakan kata kunci luaran. Kata kunci ini mengisytiharkan pembolehubah sebagai wujud di tempat lain dalam program dan menghalangnya daripada ditakrifkan beberapa kali.
// FileB.h extern int wat;
// FileB.cpp int wat = 0;
Dengan mengisytiharkan wat sebagai extern dalam FileB.h, kami pada dasarnya memberitahu pengkompil bahawa takrifan wat wujud dalam fail lain (FileB.cpp dalam kes ini). Ini memastikan bahawa tidak akan terdapat berbilang takrifan pembolehubah dan membolehkan kompilasi diteruskan tanpa ralat.
Atas ialah kandungan terperinci Mengapa Kemasukan Berbilang Fail Pengepala Menyebabkan Ralat 'Definisi Berbilang' dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!