Saltar al contenido

¿Dónde se utiliza la palabra clave C auto?

octubre 18, 2021
apple touch icon@2

los auto La palabra clave es inútil en el lenguaje C. Está ahí porque antes del lenguaje C existía un lenguaje B en el que esa palabra clave era necesaria para declarar variables locales. (B se convirtió en NB, que se convirtió en C).

Aquí está el manual de referencia para B.

Como puede ver, el manual está plagado de ejemplos en los que auto se utiliza. Esto es así porque no hay int palabra clave. Se necesita algún tipo de palabra clave para decir «esto es una declaración de una variable», y esa palabra clave también indica si es local o externa (auto versus extrn). Si no usa uno u otro, tiene un error de sintaxis. Es decir, x, y; no es una declaración en sí misma, sino auto x, y; es.

Dado que las bases de código escritas en B tenían que trasladarse a NB y a C a medida que se desarrollaba el lenguaje, las versiones más nuevas del lenguaje llevaban algo de equipaje para mejorar la compatibilidad con versiones anteriores que se traducía en menos trabajo. En el caso de auto, los programadores no tuvieron que buscar cada ocurrencia de auto y retírelo.

Es obvio por el manual que el ahora obsoleto «implícito int» cruft en C (poder escribir main() { ... } sin ningún int en frente) también viene de B. Esa es otra característica de compatibilidad con versiones anteriores para admitir el código B. Las funciones no tienen un tipo de retorno especificado en B porque no hay tipos. Todo es una palabra, como en muchos lenguajes ensambladores.

Tenga en cuenta cómo una función puede simplemente declararse extrn putchar y luego lo único que lo convierte en una función es el identificador usar: se usa en una expresión de llamada a función como putchar(x), y eso es lo que le dice al compilador que trate esa palabra sin tipo como un puntero de función.

close