Tenga en cuenta que esta pregunta se publicó originalmente en 2009, antes de que se ratificara C ++ 11 y antes de que el significado de la
autopalabra clave cambiara drásticamente. Las respuestas proporcionadas pertenecen solo al significado de C ++ 03 deauto- que es una clase de almacenamiento especificada - y no al significado de C ++ 11 deauto- que es la deducción automática de tipos. Si está buscando un consejo sobre cuándo utilizar C ++ 11auto, esta pregunta no es relevante para esa pregunta.
Durante mucho tiempo pensé que no había razón para usar la staticpalabra clave en C, porque las variables declaradas fuera del alcance del bloque eran implícitamente globales. Luego descubrí que declarar una variable como staticdentro del alcance del bloque le daría una duración permanente, y declararla fuera del alcance del bloque (en el alcance del programa) le daría el alcance del archivo (solo se puede acceder en esa unidad de compilación).
Así que esto me deja con una sola palabra clave que (quizás) todavía no entiendo completamente: la autopalabra clave. ¿Tiene algún otro significado que no sea "variable local"? ¿Algo que hace que no se haga implícitamente para usted donde quiera que desee usarlo? ¿Cómo se autocomporta una variable en el alcance del programa? ¿Qué pasa con una static autovariable en el ámbito del archivo? ¿Tiene esta palabra clave algún otro propósito que no sea simplemente existir para completar ?