2008-10-31 10 views
34

Mientras navegaba por mi libro blanco el otro día, lo noté en la lista de palabras clave C. entrada es una de las palabras clave en esa lista.¿Qué pasó con la palabra clave 'entrada'?

Está reservado para un uso futuro. Pensando en mis días de Fortran, había una función de algún tipo que utilizaba una entrada entrada para hacer una segunda firma de argumento, o punto de entrada en una función.

¿Es esto para lo que entrada se pensó originalmente para ser utilizada? o algo completamente diferente?

¿Cuál es la historia de la entrada palabra clave?

+6

@Evil, cada vez que veo su imagen, me recuerda a un "Thomas the Tank Engine" que salió horriblemente mal :-). Estoy tentado de mostrárselo a mi hijo de 4 años para ver qué nombre debería obtener del establo de Thomas. – paxdiablo

+0

Lol. Es un chip othello. – EvilTeach

Respuesta

28

No tenía ni idea, así que busqué en Google para encontrar algo sobre esto. Esto es lo que encontré.

Primero, se incluyó como palabra clave reservada.

Q: ¿Cuál fue la palabra clave de entrada mencionado en K & R1?
A: Se reservó para permitir funciones con múltiples puntos de entrada con nombres diferentes, pero se ha retirado.

(De http://archives.devshed.com/forums/c-c-134/c-programming-faqs-371017.html.)

Nunca se ha normalizado; algunos compiladores lo usaron, in a very personal way.

Más tarde se declaró obsoleto, supongo.

17

En FORTRAN, "ENTRADA" podría declarar un segundo punto de entrada en una subrutina. Era un software de programación estructurado, y afortunadamente C decidió no adoptarlo.

10

La palabra clave de entrada vino desde PL/I y permitió múltiples puntos de entrada en una función. La palabra clave fue implementada por algunos compiladores, pero nunca fue estandarizada.

+1

+1 para una historia interesante. Solo puedo ver los ajustes que tendrían los fanáticos de la programación estructurada si, además de permitir retornos múltiples, C también permitía múltiples llamadas a diferentes lugares dentro de una función. Casi vale la pena ver cómo reaccionarían :-). – paxdiablo

+4

Eso cementaría verdaderamente la posición de C como "toda la potencia y velocidad del lenguaje ensamblador, con toda la legibilidad del lenguaje ensamblador". – paxdiablo

0

Para complementar la 'entrada' respuesta aceptada se menciona en K & R1:

2.3 Palabras clave

Los siguientes identificadores se reservan para uso como palabras clave, y no podrán ser utilizados

extern int demás

registro carbón para

flotador typedef hacer

doble estática mientras que

struct goto switch

unión caso de retorno

tiempo predeterminado sizeof

breve descanso de entrada

sin firmar continuar

auto si

y aquí:

La palabra clave de entrada no está implementada actualmente por ningún compilador, pero está reservada para uso futuro. Algunas implementaciones también reservan las palabras 'fortran' y 'asm'.

Luego, en el Fundamento de la lengua ANSI C (C89) se menciona aquí:

3.1.1 Palabra clave

[...]

Las palabras clave 'entry' 'fortran', y 'asm' no se han incluido porque nunca se usaron o no son portátiles. Los usos de 'fortran' y 'asm' como palabras clave no son tan extensiones comunes.