C99 torna o livro K&R desatualizado? Se sim, o que recomendar em seu lugar? [fechadas]

10

O C99 está conosco há algum tempo. Ele apresenta muitos recursos que não estão no K&R The C Programming Language . Nenhum deles é particularmente radical. No entanto, até pequenos recursos, como ser capaz de misturar declarações e códigos, alteram a forma como se organiza o código.

Embora eu ainda considere o livro K&R uma referência inestimável e, como seu estilo de escrita, existe um livro melhor que leve em consideração o padrão C99? Eu compraria uma terceira edição da K&R em um piscar de olhos, mas acho que isso não vai acontecer.

Justin Dearing
fonte
Realmente não existe uma versão em inglês atualizada do C99? A tradução checa deste livro foi atualizada para o C99.
Šimon Tóth
@Let_Me_Be A 2ª edição do livro K&R foi publicada em 1988. Não há uma versão mais recente em inglês do livro. Essa edição cobre o ANSI C de 1988.
Thomas Owens
Devido à forma como os direitos autorais / royalties são configurados, a K&R não faria nada escrevendo uma terceira edição, e é por isso que ainda não vimos uma.
BlackJack
@ BlackJack, é uma pena.
Justin Dearing
2
@Let_Me_Be - Quanto é que a tradução para tcheco é traduzida de volta para o inglês? :-) Eu acho que pode ser a única maneira que terá uma versão C99 de K & R ...
voretaq7

Respostas:

8

Eu ainda sugeriria (a segunda edição da ANSIfied) K&R para quem está apenas aprendendo C e quer aprender C Procedimental Reto (objetos negativos). Eu dobraria essa recomendação se eles pretendam invadir o código do kernel * NIX um dia, pois a K&R realmente tem a "Unix Mentality" em um livro de programação.

Depois que eles entenderem o básico da sintaxe C e tiverem uma idéia razoável de estilo, você poderá apresentá-los a outras referências que falam sobre os recursos do C99 e explicar que isso pode mudar a maneira como eles organizam o que escrevem, mas eles terão ( geralmente) bons hábitos desde o início com K&R (como fazer declarações antecipadas) e eles saberão o porquê de fazer algo contrário a esses hábitos - acho que você cria melhores programadores dessa maneira.

voretaq7
fonte
3
Fazer declarações antecipadas é realmente uma prática inadequada herdada do estilo C89; as variáveis ​​devem ser declaradas antes de serem usadas pela primeira vez. Veja, por exemplo, a resposta para esta pergunta
Étienne
2
@ Etienne Por "adiantado", quero dizer "As variáveis ​​devem ser declaradas o mais cedo possível, dentro do escopo em que serão usadas". que é basicamente o que essa outra resposta está defendendo (ou pelo menos mostrando em seus exemplos muito simplificados). Eu aprovo o que essa resposta está defendendo, mas você quer ter certeza de que os novos programadores percebam que "Oh drat, eu preciso de um {counter, temp variable, etc.} - - deixe-me declarar aqui no meio da minha lógica". é uma coisa ruim , porque isso destrói a legibilidade como este outros pontos responder em (pelo menos IMHO ele faz)
voretaq7
2
Não há consenso, discordo respeitosamente que isso é uma coisa ruim e muitas pessoas pensam que é bom declá-lo no meio da lógica, veja também programmers.stackexchange.com/questions/56585/…
Étienne
@ Étienne Essa é a sua opinião, e você certamente tem direito a ela, mas, para ser franco, não há como mudar minha opinião: eu sou um velho hacker do Unix e o estilo de codificação C é algo muito religioso para mim. Felizmente as chances são de nenhum de nós nunca terá que ler o código do outro :-)
voretaq7
Espero que não ;-)
Étienne
8

Você quer Harbison e Steele: " C: um manual de referência "

Ele cobre explicitamente C99 e compara / contrasta com outros sabores de C. Eu achei super útil.

Angelo
fonte
11
Para ser justo, H&S é exatamente o que diz: um manual de referência e, por si só, não é um ótimo recurso de aprendizado , como é o K&R.
John Bode
Aceita! Eu acho que o OP está procurando uma referência, no entanto.
Angelo
1

Eu recomendaria a programação C de King : uma abordagem moderna . É mais espessa do que a K&R, mas ainda não é particularmente acolchoada, e o autor aponta o que é e o que não é novo no C99, além de dicas de estilo e outras coisas.

Engenheiro Mundial
fonte
11
US $ 95 na Amazon, uau!
Ernest Friedman-Hill
Na verdade, você deve apontar em sua resposta que quer dizer programação C: uma abordagem moderna (segunda edição). Também tenho algo a perguntar, podemos conversar um pouco?
precisa