¿C99 hace que el libro de K&R esté desactualizado? Si es así, ¿qué recomendar en su lugar? [cerrado]

10

C99 ha estado con nosotros por un tiempo ahora. Se introduce una gran cantidad de características que no están en K & R El Lenguaje de Programación C . Ninguno de ellos es particularmente radical. Sin embargo, incluso las características pequeñas como la posibilidad de mezclar declaraciones y el código cambian la forma en que uno organiza el código.

Si bien todavía considero que el libro de K&R es una referencia invaluable y, al igual que su estilo de escritura, ¿hay un libro mejor que tenga en cuenta el estándar C99? Compraría una tercera edición de K&R en un instante, pero no creo que eso vaya a suceder.

Justin Dearing
fuente
¿Realmente no hay una versión en inglés actualizada C99? La traducción al checo de este libro está actualizada para C99.
Šimon Tóth
@Let_Me_Be La segunda edición del libro K&R se publicó en 1988. No hay una versión más reciente en inglés del libro. Esa edición cubre ANSI C de 1988.
Thomas Owens
Debido a cómo se configuran los derechos de autor / regalías, K&R no haría nada escribiendo una tercera edición, por lo que aún no hemos visto una.
BlackJack
@BlackJack es una verdadera pena.
Justin Dearing
2
@Let_Me_Be - ¿Cuánto cuesta volver a traducir la traducción al checo al inglés? :-) Creo que puede ser la única manera vamos a tener una versión C99 de K & R ...
voretaq7

Respuestas:

8

Todavía sugeriría (la segunda edición de ANSIfied) K&R para cualquier persona que solo esté aprendiendo C y que quiera aprender Derecho procesal C (menos objetos). Duplicaría esa recomendación si tienen la intención de estar pirateando el código del kernel * NIX algún día, ya que K&R realmente tiene la "Mentalidad de Unix" en un libro de programación.

Una vez que hayan comprendido los conceptos básicos de la sintaxis de C y tengan una idea razonable del estilo, puede presentarles otras referencias que hablan sobre las características de C99 y explicar que puede cambiar la forma en que organizan lo que escriben, pero tendrán ( en general) buenos hábitos al comenzar con K&R (como hacer declaraciones por adelantado) y se darán cuenta del por qué detrás de hacer algo contrario a esos hábitos: creo que construyes mejores programadores de esa manera.

voretaq7
fuente
3
Hacer una declaración por adelantado es en realidad una mala práctica heredada del estilo C89, las variables deben declararse justo antes de que se usen por primera vez. Ver, por ejemplo, la respuesta a esta pregunta
Étienne
2
@ Étienne Con "por adelantado" quiero decir "Todas las variables deben declararse lo antes posible dentro del alcance donde se utilizarán". que es básicamente lo que defiende esa otra respuesta (o al menos se muestra en sus ejemplos muy simplificados). Estoy de acuerdo con lo que defiende esa respuesta, pero desea asegurarse de que los nuevos programadores se den cuenta de que "Oh, maldita sea, necesito un {contador, variable temporal, etc.} - Permítanme declararlo aquí en medio de mi lógica". es algo malo porque hacerlo arruina la legibilidad como esta otra respuesta señala (al menos en mi humilde opinión)
voretaq7
2
No hay consenso, respetuosamente no estoy de acuerdo con que sea algo malo, y mucha gente piensa que es bueno declararlo en medio de la lógica, vea también programmers.stackexchange.com/questions/56585/…
Étienne
@ Étienne Esa es tu opinión, y ciertamente tienes derecho a ella, pero para ser franco, no hay forma de que cambies MI opinión: soy un viejo hacker irritable de Unix y el estilo de codificación C es algo muy religioso para yo. Afortunadamente, ninguno de nosotros tendrá que leer el código del otro :-)
voretaq7
Con suerte no lo haremos ;-)
Étienne
8

Desea Harbison y Steele: " C: un manual de referencia "

Cubre explícitamente C99 y compara / contrasta con otros sabores de C. Lo he encontrado muy útil.

Angelo
fuente
1
Para ser justos, H&S es exactamente lo que dice: un manual de referencia , y en sí mismo no es un gran recurso de aprendizaje como lo es K&R.
John Bode
¡De acuerdo! Sin embargo, creo que el OP está buscando una referencia.
Angelo
1

Recomiendo la programación de King's C: un enfoque moderno . Es más grueso que K&R, pero aún no está especialmente acolchado, y el autor señala qué es y qué no es nuevo en C99, así como consejos de estilo y otras cosas similares.

Ingeniero mundial
fuente
1
$ 95 en Amazon, whoah!
Ernest Friedman-Hill
En realidad, debe indicar en su respuesta que quiere decir Programación en C: un enfoque moderno (segunda edición). También tengo algo que preguntar, ¿podemos tener una breve conversación?
Suraj Jain