Le standard C a autrefois déconseillé l'utilisation du mot-clé statique pour les déclarations d'objets dans la portée d'un espace de noms, considérant les espaces de noms sans nom comme un alternative supérieure.
Les espaces de noms sans nom offrent plusieurs avantages par rapport au mot-clé statique :
Par exemple, il est valide de déclarer des fonctions et des variables statiques dans un espace de noms :
static int sample_function() { ... } static int sample_variable;
Cependant, il n'est pas valide de déclarer des classes ou des structures statiques :
// Error: Static types not allowed in namespace scope static class sample_class { ... }; static struct sample_struct { ... };
Les espaces de noms sans nom résolvent ce problème en fournissant un moyen de déclarer des types. dans la portée de l'espace de noms :
// Legal code using unnamed namespace namespace { class sample_class { ... }; struct sample_struct { ... }; }
Bien que le mot-clé statique ait été rendu conforme à la norme C 11, les espaces de noms sans nom restent supérieurs en termes de fourniture une portée plus complète pour les variables et les types, et pour améliorer l'encapsulation du code.
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!