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_ */
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 :
extern int wat;
Cela informe le compilateur que ce qui sera défini ailleurs.
int wat = 0;
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!