Rumah > pembangunan bahagian belakang > C++ > Mengapa Kod C Saya Menghasilkan Ralat 'Berbilang Takrif `wat'', dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Kod C Saya Menghasilkan Ralat 'Berbilang Takrif `wat'', dan Bagaimana Saya Boleh Membetulkannya?

Barbara Streisand
Lepaskan: 2024-12-04 03:56:10
asal
1011 orang telah melayarinya

Why Does My C   Code Produce a

Berbilang Takrifan 'wat' dalam Projek C

Kod yang diberikan terdiri daripada empat fail: FileA.cpp, FileA.h, FileB.cpp dan FileB.h. Apabila disusun, ia menghadapi ralat yang menyatakan "berbilang takrifan `wat'".

FileB.h mentakrifkan pembolehubah integer bernama 'wat' seperti berikut:

#ifndef FILEB_H_
#define FILEB_H_

int wat;
void world();


#endif /* FILEB_H_ */
Salin selepas log masuk

Memandangkan fail pengepala ini disertakan dalam kedua-dua FileA.cpp dan FileB.cpp, pengkompil mengesan bahawa 'wat' ditakrifkan beberapa kali. Ini berlaku kerana makro FILEB_H_ tidak ditakrifkan dengan betul dalam semua fail pengepala.

Untuk menyelesaikan isu ini, fail pengepala harus diubah suai sebagai berikut:

FileA.h:

#ifndef FILEA_H_
#define FILEA_H_

#include "FileB.h"
void hello();

#endif /* FILEA_H_ */
Salin selepas log masuk

FileB.h:

#ifndef FILEB_H_
#define FILEB_H_

extern int wat;  // Declare 'wat' as external
void world();


#endif /* FILEB_H_ */
Salin selepas log masuk

FileB .cpp:

#include "FileB.h"

int wat = 0;  // Define 'wat' with its initial value
void world()
{
    // More code
}
Salin selepas log masuk

Dengan menggunakan 'luar' dalam FileB.h, kami memaklumkan pengkompil bahawa 'wat' ditakrifkan di tempat lain dan ia tidak sepatutnya mencari definisinya dalam fail semasa. Takrifan sebenar 'wat' kemudiannya disediakan dalam FileB.cpp, mengelakkan ralat takrifan berbilang.

Atas ialah kandungan terperinci Mengapa Kod C Saya Menghasilkan Ralat 'Berbilang Takrif `wat'', dan Bagaimana Saya Boleh Membetulkannya?. 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