Zwróć uwagę, że to pytanie zostało pierwotnie opublikowane w 2009 r., Zanim C ++ 11 został ratyfikowany i zanim znaczenie
autosłowa kluczowego zostało drastycznie zmienione. Udzielone odpowiedzi dotyczą tylko C ++ 03 znaczeniaauto- czyli określonej klasy pamięci masowej - a nie znaczenia C ++ 11auto- czyli automatycznego odejmowania typów. Jeśli szukasz porady, kiedy używać C ++ 11auto, to pytanie nie dotyczy tego pytania.
Przez długi czas myślałem, że nie ma powodu, aby używać staticsłowa kluczowego w C, ponieważ zmienne zadeklarowane poza zakresem bloków były niejawnie globalne. Potem odkryłem, że zadeklarowanie zmiennej jako mieszczącej się staticw zakresie blokowym nadałoby jej stały czas trwania, a zadeklarowanie jej poza zakresem bloku (w zakresie programu) dałoby jej zakres plikowy (można uzyskać do niego dostęp tylko w tej jednostce kompilacji).
Pozostaje mi więc tylko jedno słowo kluczowe, którego (być może) jeszcze w pełni nie rozumiem: autosłowo kluczowe. Czy jest inne znaczenie niż „zmienna lokalna”? Cokolwiek robi, co nie jest robione domyślnie dla ciebie, gdziekolwiek chcesz go użyć? Jak zachowuje się autozmienna w zakresie programu? A co ze static autozmienną w zakresie pliku? Czy to słowo kluczowe ma inny cel niż tylko istnienie kompletności ?