Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyelesaikan Ralat 'Berbilang Takrifan Pembolehubah' dalam C?

Bagaimana untuk Menyelesaikan Ralat 'Berbilang Takrifan Pembolehubah' dalam C?

Susan Sarandon
Lepaskan: 2024-11-30 13:10:11
asal
249 orang telah melayarinya

How to Resolve

Berbilang Takrifan Pembolehubah dalam C

Apabila bekerja dengan berbilang fail dalam projek C, anda boleh menghadapi ralat yang berkaitan dengan pelbagai definisi pembolehubah . Pertimbangkan situasi berikut:

FileA.cpp:

#include "FileA.h"

int main()
{
    hello();
    return 0;
}

void hello()
{
    //code here
}
Salin selepas log masuk

FileA.h:

#ifndef FILEA_H_
#define FILEA_H_
#include "FileB.h"
void hello();

#endif /* FILEA_H_ */
Salin selepas log masuk

FileB.cpp:

#include "FileB.h"

void world()
{
    //more code;
}
Salin selepas log masuk

FileB.h:

#ifndef FILEB_H_
#define FILEB_H_

int wat;
void world();


#endif /* FILEB_H_ */
Salin selepas log masuk

Setelah cuba menyusun ini kod, anda mungkin menghadapi ralat menyatakan "takrif berbilang `wat'."

Penjelasan:

Ralat timbul kerana anda telah menentukan pembolehubah global, wat, dua kali dalam unit kompilasi anda. Kedua-dua FileA.h dan FileB.h menyertakan pengisytiharan wat, mentakrifkannya dua kali dalam skop global.

Penyelesaian:

Untuk menyelesaikan isu ini, ikut perkara ini langkah:

FileB.h:

extern int wat;
Salin selepas log masuk

FileB.cpp:

int wat = 0;
Salin selepas log masuk

Dengan menggunakan extern in FileB.h, anda memaklumkan pengkompil bahawa pembolehubah bernama wat wujud di tempat lain. Dalam kes ini, anda mentakrifkan pembolehubah sebenar dengan pemula dalam FileB.cpp.

Pendekatan ini memastikan wat diisytiharkan sekali dalam skop global, menghapuskan ralat takrifan berbilang.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Berbilang Takrifan Pembolehubah' dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan