Notez que cette question a été publiée à l'origine en 2009, avant la ratification de C ++ 11 et avant que la signification du
auto
mot - clé ne soit radicalement modifiée. Les réponses fournies concernent uniquement la signification C ++ 03 deauto
- qui est une classe de stockage spécifiée - et non la signification C ++ 11 deauto
- c'est-à-dire la déduction automatique de type. Si vous recherchez des conseils sur l'utilisation du C ++ 11auto
, cette question n'est pas pertinente pour cette question.
Pendant très longtemps, j'ai pensé qu'il n'y avait aucune raison d'utiliser le static
mot - clé en C, car les variables déclarées en dehors de la portée du bloc étaient implicitement globales. Ensuite, j'ai découvert que déclarer une variable comme static
dans la portée du bloc lui donnerait une durée permanente, et la déclarer en dehors de la portée du bloc (dans la portée du programme) lui donnerait une portée fichier (accessible uniquement dans cette unité de compilation).
Cela me laisse donc avec un seul mot-clé que je ne comprends (peut-être) pas encore complètement: le auto
mot-clé. Y a-t-il une autre signification que «variable locale»? Tout ce qu'il fait qui n'est pas implicitement fait pour vous où que vous souhaitiez l'utiliser? Comment une auto
variable se comporte-t-elle dans la portée du programme? Qu'en est-il d'une static auto
variable dans la portée du fichier? Ce mot-clé a-t-il un autre objectif que d' exister simplement pour être complet ?