C99 rend-il le livre K&R obsolète? Si oui, que recommander à sa place? [fermé]

10

C99 est avec nous depuis un moment maintenant. Il présente de nombreuses fonctionnalités qui ne sont pas dans K & Rs The C Programming Language . Aucun d'eux n'est particulièrement radical. Cependant, même de petites fonctionnalités comme la possibilité de mélanger des déclarations et du code changent la façon dont on organise le code.

Bien que je considère toujours le livre K&R comme une référence inestimable, et comme son style d'écriture, existe-t-il un meilleur livre qui prend en compte la norme C99? J'achèterais une troisième édition de K&R en un clin d'œil, mais je ne pense pas que cela va se produire.

Justin Dearing
la source
Il n'y a vraiment pas de version anglaise mise à jour C99? La traduction tchèque de ce livre est mise à jour pour C99.
Šimon Tóth, le
@Let_Me_Be La 2e édition du livre K&R a été publiée en 1988. Il n'y a pas de version anglaise plus récente du livre. Cette édition couvre ANSI C de 1988.
Thomas Owens
En raison de la façon dont le droit d'auteur / redevance est mis en place, K&R ne ferait rien en écrivant une troisième édition, c'est pourquoi nous n'en avons pas encore vu.
BlackJack
@BlackJack c'est vraiment dommage.
Justin Dearing, le
2
@Let_Me_Be - Combien pour faire traduire la traduction tchèque en anglais? :-) Je pense que c'est peut-être le seul moyen d'obtenir une version C99 de K&R ...
voretaq7

Réponses:

8

Je suggérerais toujours (la deuxième édition ANSIfiée de) K&R pour toute personne qui est en train d'apprendre le C et qui veut apprendre le C de procédure droite (objets moins). Je doublerais cette recommandation s'ils ont l'intention de pirater un jour le code du noyau * NIX car K&R a vraiment la "mentalité Unix" dans un livre de programmation.

Une fois qu'ils ont maîtrisé les bases de la syntaxe C et ont une idée raisonnable du style, vous pouvez leur présenter d'autres références qui parlent des fonctionnalités de C99 et expliquer que cela peut changer la façon dont ils organisent ce qu'ils écrivent, mais ils auront ( généralement) de bonnes habitudes en commençant par K&R (comme faire des déclarations à l'avance) et ils seront conscients du pourquoi derrière quelque chose de contraire à ces habitudes - je pense que vous construisez de meilleurs programmeurs de cette façon.

voretaq7
la source
3
Faire une déclaration à l'avance est en fait une mauvaise pratique héritée du style C89, les variables doivent être déclarées juste avant leur première utilisation. Voir par exemple la réponse à cette question
Étienne
2
@ Étienne Par "en amont", je veux dire "les variables doivent toutes être déclarées le plus tôt possible dans le cadre où elles seront utilisées". qui est essentiellement ce que cette autre réponse préconise (ou du moins montre dans ses exemples très simplifiés). J'approuve ce que cette réponse préconise, mais vous voulez vous assurer que les nouveaux programmeurs réalisent que "Oh drat, j'ai besoin d'un {compteur, variable temporaire, etc.} - Permettez-moi de le déclarer ici au milieu de ma logique." est une mauvaise chose parce que cela nuit à la lisibilité comme le montre cette autre réponse (du moins à
mon humble avis
2
Il n'y a pas de consensus, je ne suis respectueusement pas d'accord pour dire que c'est une mauvaise chose, et beaucoup de gens pensent que c'est une bonne chose de le déclarer au milieu de la logique, voir aussi programmers.stackexchange.com/questions/56585/…
Étienne
@ Étienne C'est votre opinion, et vous y avez certainement droit, mais pour être franc, vous ne pouvez pas changer mon opinion: je suis un vieux hacker Unix grincheux et le style de codage C est très religieux pour moi. Heureusement, aucun de nous n'aura à lire le code de l'autre :-)
voretaq7
J'espère que nous ne le ferons pas ;-)
Étienne
8

Vous voulez Harbison et Steele: " C: Un manuel de référence "

Il couvre explicitement C99 et compare / contraste avec d'autres saveurs de C. Je l'ai trouvé super utile.

Angelo
la source
1
Pour être honnête, H&S est exactement ce qu'il dit être: un manuel de référence et n'est pas en soi une excellente ressource d' apprentissage comme K&R.
John Bode
Se mettre d'accord! Je pense cependant que le PO cherche une référence.
Angelo
1

Je recommanderais la programmation King's C: une approche moderne . Il est plus épais que K&R mais n'est pas encore particulièrement rembourré et l'auteur souligne ce qui est et n'est pas nouveau pour C99 ainsi que des conseils de style et d'autres choses de ce genre.

Ingénieur du monde
la source
1
95 $ sur Amazon, whoah!
Ernest Friedman-Hill,
En fait, vous devriez indiquer dans votre réponse que vous voulez dire la programmation C: une approche moderne (deuxième édition). J'ai aussi quelque chose à demander, pouvons-nous avoir une courte conversation?
Suraj Jain