Spécificateurs statiques de la classe de stockage
Les spécificateurs statiques de la classe de stockage, statique et extern, peuvent être appliqués aux objets et aux fonctions.Le tableau suivant indique où les mots clés statique et extern peuvent et ne peuvent pas être utilisés.
Utilisation de statique et des extern
Construction |
Peut static assurez utiliser ? |
Extern pouvez assurez utiliser ? |
---|---|---|
déclarations de fonction dans un bloc |
Non |
Oui |
Arguments formels d'une fonction |
Non |
Non |
objets dans un bloc |
Oui |
Oui |
Objets en dehors d'un bloc |
Oui |
Oui |
Fonctions |
Oui |
Oui |
Fonctions membres de classe |
Oui |
Non |
données de membre de classe |
Oui |
Non |
noms d'typedef |
Non |
Non |
Un nom spécifié à l'aide de le mot clé de statique a une liaison interne à l'exception de les membres static d'une classe qui ont une liaison externe.Autrement dit, il n'est pas visible à l'extérieur de l'unité de traduction actuelle.Un nom spécifié à l'aide de le mot clé d' extern a une liaison externe à moins que précédemment défini comme ayant une liaison interne.Pour plus d'informations sur la visibilité des noms, consultez portée et le programme et liaison.
[!REMARQUE]
Fonctionne déclarés comme inline et qui ne sont pas des fonctions membres de classe sont fournis les mêmes caractéristiques de liens que les fonctions déclarées comme statique.
Un nom de classe dont la déclaration n'a pas encore été rencontrée par le compilateur peut être utilisé dans une déclaration d' extern .Le nom généré avec une déclaration ne peut pas être utilisé tant que la déclaration de classe ait été détectée.