Maison > Article > développement back-end > Le mot-clé « static » en C est-il vraiment obsolète ?
Les développeurs C utilisent depuis longtemps le mot-clé « statique » dans les unités de traduction pour contrôler la visibilité des symboles. Cependant, cette pratique a été dépréciée dans n3092, suivie de sa suppression dans n3225.
La dépréciation de « static » visait à décourager son utilisation pour déclarer des objets dans la portée de l'espace de noms. , car l'espace de noms sans nom offrait une alternative préférable. Cependant, le problème de suivi des défauts C révèle une raison nuancée pour ce changement.
Dans la révision 94 des rapports sur les défauts du langage de base standard C, le problème (1012. Undeprecating static ) explique que :
Bien que 7.3.1.1 [namespace.unnamed] indique que l'utilisation du mot clé static pour déclarer des variables dans la portée de l'espace de noms est obsolète car l'espace de noms sans nom fournit une alternative supérieure, il est peu probable que la fonctionnalité sera supprimé à tout moment dans un avenir prévisible.
Cette mise à jour annule effectivement la dépréciation. « Static » reste un mot-clé valide pour déclarer des fonctions et des objets avec un lien interne. Son principal avantage réside dans sa brièveté et l'absence de code passe-partout supplémentaire par rapport à l'utilisation d'espaces de noms sans nom.
La dépréciation originale visait à améliorer l'adhésion de C aux normes C. , car C ne reconnaît pas l'espace de noms sans nom. Cependant, la décision d'annuler la dépréciation reconnaît les complexités réelles de la compilation de programmes C en tant que C .
La dépréciation de « statique » était peut-être bien intentionnée, mais sa suppression reflète la prise de conscience que les espaces de noms sans nom ne remplacent pas complètement l'utilité de « statique » pour déclarer des objets avec des liens internes. En conséquence, les développeurs peuvent continuer à utiliser « statique » en toute confiance, car il est peu probable que sa présence dans la norme C disparaisse de si tôt.
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!