Nota che questa domanda è stata originariamente pubblicata nel 2009, prima che C ++ 11 fosse ratificato e prima che il significato della
autoparola 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 staticparola 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 staticall'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 autoparola 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 autovariabile nell'ambito del programma? Che dire di una static autovariabile nell'ambito del file? Questa parola chiave ha uno scopo diverso dal semplice esistere per completezza ?