Pergunta

Quase todo (relativamente) novo livro sobre programação C que eu vi não parece aderir ao padrão C99, ou eles o cobrem em um capítulo extra. Com o fundo Java, o padrão C99 tornou a migração (bem, ainda migrando ^^) muito mais fácil para mim, e isso provavelmente se aplica a outros idiomas também.

Parece que o C99 ainda não atingiu a maioria dos desenvolvedores C. Mas por que?

Foi útil?

Solução

Resposta curta: O suporte do compilador demora a instalar e os programadores C são um lote conservador que muda seu comportamento lentamente.

Outras dicas

Eu suspeito fortemente que é principalmente porque o MSVC não tenta apoiar o C99 e provavelmente nunca o fará. Existem alguns compiladores incorporados no mesmo barco, mas são dificilmente comuns o suficiente para importar muito individualmente. Afaik todo mundo está pelo menos tentando implementar o C99 o máximo possível.

Não há muita razão na prática para não usar os recursos selecionados do C99, mas se você quiser aprender e escrever para um padrão C, e apenas um, deve ser C89.

Além disso, provavelmente é bastante difícil e confuso escrever um texto C introdutório que começa dizendo "OK, existem dois padrões diferentes, e eu vou usar três cores diferentes de texto: uma para C89, uma para C99 e um para ambos ". Provavelmente também é mais difícil escrever sobre C99 para um livro inteiro e, em seguida, "retomar" muito do que você disse em um apêndice sobre C89, do que escrever sobre C89 e depois adicionar a ele em um apêndice sobre C99 .

Todas as especulações, no entanto. Na verdade, você teria que perguntar aos autores dos livros que está lendo (ou talvez em alguns casos irem contra todos os seus instintos de programação e Leia o prefácio ;-))

O risco de mudar para um novo compilador em uma base de código existente é geralmente desconhecido, mas pode ser bastante doloroso, é mais sábio alterar apenas quando você tiver meses de tempo para sacudir quaisquer bugs/alterações. E para bases de código realmente antigas, às vezes é mais sábio nunca mudar.

Eu estaria disposto a apostar que a maioria dos projetos que usam C não estão dispostos a mudar para C99, já que quase não há vantagem para uma grande base de código existente e um pouco de potencial desvantagem. Eu trabalhei em uma grande casa de software que verificou os compiladores na árvore de origem ao lado do código e faria Nunca Switch Compilers para um produto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top