Maison  >  Article  >  développement back-end  >  Le mot-clé « static » en C est-il vraiment obsolète ?

Le mot-clé « static » en C est-il vraiment obsolète ?

DDD
DDDoriginal
2024-11-13 07:23:02873parcourir

Is the 'static' keyword in C   truly deprecated?

Lien interne et mot-clé « statique » obsolète en C

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 justification de la dépréciation

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.

L'annulation de la dépréciation

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.

La persistance de « statique »

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.

Implications pour la compatibilité C et C

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 .

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn