Nota che questa domanda è stata originariamente pubblicata nel 2009, prima che C ++ 11 fosse ratificato e prima che il significato della
auto
parola chiave fosse cambiato drasticamente. Le risposte fornite riguardano solo il significato C ++ 03 diauto
- che è una classe di archiviazione specificata - e non il significato C ++ 11 diauto
- che è deduzione automatica del tipo. Se stai cercando consigli su quando usare il C ++ 11auto
, questa domanda non è rilevante per quella domanda.
Per molto tempo ho pensato che non ci fosse motivo di usare la static
parola chiave in C, perché le variabili dichiarate al di fuori dell'ambito del blocco erano implicitamente globali. Poi ho scoperto che dichiarare una variabile come static
all'interno dell'ambito del blocco gli darebbe una durata permanente, e dichiararla al di fuori dell'ambito del blocco (nell'ambito del programma) gli darebbe l'ambito del file (è possibile accedervi solo in quell'unità di compilazione).
Quindi questo mi lascia con una sola parola chiave che (forse) non comprendo ancora completamente: la auto
parola chiave. C'è qualche altro significato oltre a "variabile locale"? Qualcosa che non viene fatto implicitamente per te ovunque tu voglia usarlo? Come si comporta una auto
variabile nell'ambito del programma? Che dire di una static auto
variabile nell'ambito del file? Questa parola chiave ha uno scopo diverso dal semplice esistere per completezza ?