Maison > développement back-end > C++ > Pourquoi est-ce que j'obtiens une erreur de compilation « Définitions multiples pour « wat » » en C ?

Pourquoi est-ce que j'obtiens une erreur de compilation « Définitions multiples pour « wat » » en C ?

Susan Sarandon
Libérer: 2024-12-08 07:04:16
original
835 Les gens l'ont consulté

Why Am I Getting a

Définition multiple de variables en C

Rencontrer une erreur de compilation de « définitions multiples pour wat » peut être déroutant. Analysons le code source fourni et identifions le problème.

Dans votre code, vous avez quatre fichiers : FileA.cpp, FileA.h, FileB.cpp et FileB.h. Lors de la compilation, le compilateur détecte plusieurs définitions d'une variable nommée wat.

Après inspection, vous avez défini la variable wat à la fois dans FileA.h et FileB.h :

// FileA.h
void hello();

#endif /* FILEA_H_ */

// FileB.h
int wat;
void world();

#endif /* FILEB_H_ */
Copier après la connexion

Lorsque votre Lorsque le code est compilé, les fichiers d'en-tête sont inclus plusieurs fois dans l'unité de compilation, ce qui entraîne des définitions en double de la variable wat. Pour résoudre ce problème, vous devez séparer la déclaration de wat de sa définition.

Solution :

  1. Déclarer wat comme variable externe dans FileB.h :
extern int wat;
Copier après la connexion

Cela informe le compilateur que ce qui sera défini ailleurs.

  1. Définir wat dans FileB.cpp :
int wat = 0;
Copier après la connexion

Maintenant, lors de la compilation, le compilateur identifiera correctement wat comme étant déclaré dans FileB.h et défini dans FileB.cpp, résolvant l'erreur de définition multiple.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal