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
auto
palabra 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 static
palabra clave en C, porque las variables declaradas fuera del alcance del bloque eran implícitamente globales. Luego descubrí que declarar una variable como static
dentro 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 auto
palabra 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 auto
comporta una variable en el alcance del programa? ¿Qué pasa con una static auto
variable en el ámbito del archivo? ¿Tiene esta palabra clave algún otro propósito que no sea simplemente existir para completar ?