Cet article présente l'utilisation du mot-clé extern en C/C++. Il parle principalement de l'utilisation de la modification de variables. Vous pouvez vous y référer. , j'espère que cela vous aidera.
1. Explication de base
extern peut être placé avant une variable ou une fonction pour indiquer que la définition de la variable ou de la fonction se trouve dans un autre fichier, invitant le compilateur à rencontrer cette variable. ou fonction Lorsque vous recherchez sa définition dans d'autres modules. De plus, extern peut également être utilisé pour lier des spécifications.
extern a deux fonctions : (1) Lorsqu'il est utilisé avec "C", comme : extern "C" void func(int a); name. Pour traduire le nom de la fonction correspondante au lieu de C++. Sur ce point, vous pourrez peut-être trouver la réponse dans le livre "Exploration approfondie du modèle objet C++" de plus, il existe une fonction backtrace sous Linux qui permet d'imprimer les informations sur la pile, et vous pouvez visualiser le C++ traduit ; nom de la fonction (cette fonction est utilisée dans la bibliothèque muduo) .
(2) Lorsque extern n'est pas utilisé avec « C » pour modifier une variable ou une fonction, comme dans un fichier d'en-tête : extern int g_Int ; sa fonction est de déclarer la portée d'une fonction ou d'une variable globale, et son Les fonctions et variables déclarées peuvent être utilisées dans ce module ou dans d'autres modules, rappelez-vous qu'il s'agit d'une déclaration et non d'une définition !
2. Lorsque extern modifie des variables
La bonne façon de l'utiliser est : définir la variable dans le fichier .c et la déclarer dans le fichier .h correspondant.
Nous déterminons s'il s'agit d'une déclaration ou d'une définition selon que de l'espace mémoire sera alloué à la variable (à proprement parler, il s'agit simplement d'une allocation de mémoire et n'inclut pas la partie initialisation). Alors, la phrase int i; la déclare-t-elle ou la définit-elle ? C'est à la fois une affirmation et une définition. Si nous utilisons cette phrase dans le fichier test.h, une fois que i est défini dans d'autres fichiers (par exemple 1), ou que le fichier est inclus à plusieurs reprises (par exemple 2), une erreur de redéfinition se produira.
/* e.g.1 以下为3个文件 */ //test.h int i; //test2.h int i; //main.cpp #include "test.h" #include "test2.h" int main() { return 0; }
Tutoriels associés : Tutoriel vidéo C
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!