Pergunta

Para muitas perguntas a resposta parece estar no “padrão”.No entanto, onde encontramos isso?De preferência on-line.

Às vezes, pesquisar no Google pode parecer fútil, especialmente para os padrões C, uma vez que eles são afogados na enxurrada de discussões em fóruns de programação.

Para começar, já que estes são os que estou procurando no momento, onde existem bons recursos online para:

  • Capítulo 89
  • Capítulo 99
  • C11
  • C++98
  • C++03
  • C++11
  • C++14
Foi útil?

Solução

versões em PDF do padrão

A partir de 01 de setembro de 2014, as melhores localizações de preço para C e C ++ normas documentos em PDF são:

Você não pode geralmente começar revisões antigas de um padrão (qualquer padrão) diretamente dos organismos de normalização logo após uma nova edição da norma é liberado. Assim, as normas para C89, C90, C99, C ++ 98, C ++ 03 vai ser difícil de encontrar para a compra de um organismo de normalização. Se você precisar de uma revisão antiga de um padrão, verifique Techstreet como uma fonte possível. Por exemplo, ainda pode fornecer o / IEC 9899 versão canadense CAN / CSA-ISO: padrão 1990, em PDF, para uma taxa

.

Não-PDF versões eletrônicas do padrão

Imprimir versões do padrão

Cópias impressas das normas estão disponíveis from organismos nacionais de normalização e ISO mas são muito caros.

Se você quiser uma cópia impressa do padrão C90 por muito menos dinheiro do que o acima, você pode ser capaz de encontrar uma cópia usado barato de Herb Schildt 's livro The Annotated ANSI padrão em Amazon , que contém o texto da norma (útil ) e comentários sobre o padrão (menos útil).

O C99 e C ++ 03 padrões estão disponíveis em forma de livro de Wiley ea BSI (British Standards Institute):

minutas Standards Committee

O projecto de trabalho para as futuras normas é frequentemente disponíveis a partir de sites de comissões:

Note que estes documentos não são o mesmo que o padrão, embora as versões apenas antes das reuniões que decidem sobre um padrão são geralmente muito perto do que é no padrão final. As versões (Comitê Final Draft) FCD são protegidos por senha; você precisa estar no comitê de padrões para obtê-los.

No entanto, na minha opinião, embora as versões preliminares pode ser muito próximo às versões ratificados finais dos padrões, você deve realmente obter uma cópia dos documentos reais - especialmente se você está pensando em citá-los como referências. Claro, os alunos passam fome deve ir adiante e usar as correntes de ar se precisando de dinheiro.


Parece que, se você está disposto e capaz de esperar alguns meses após a ratificação de um padrão, para procurar "INCITS / ISO / IEC" em vez de "/ IEC ISO" quando se olha para um padrão é a chave. Desta forma, eu era capaz de encontrar o C ++ 11 padrão a um preço razoável e agora o padrão C11. Assim, como um exemplo que você procure por "INCITS / ISO / IEC 9899: 2011" em vez de "ISO / IEC 9899: 2011" na webstore.ansi.org e você vai encontrar a versão PDF com preços razoáveis.


O site https://wg21.link/ fornece links de curto URL para o C ++ projecto de trabalho atual e projecto normas e documentos de comissões:


O actual projecto da norma é mantido como fontes de látex sobre Github . Estas fontes podem ser convertidos em HTML usando cxxdraft-htmlgen . Os seguintes sites manter páginas HTML assim gerados:

Tim Canção também mantém gerado versões HTML e PDF do Networking TS e Ranges TS.

Outras dicas

As versões online do padrão pode ser encontrada:

Projecto de Trabalho, Norma para linguagem de programação C ++

A seguir todos os projectos de versões do padrão :
Todos os seguintes são livremente para download
2019/03/15: N4810 git
2019/01/21: N4800 git
2018/11/26: N4791 git
2018/10/08: N4778 git
2018/07/07: N4762 git
2018/05/07: N4750 git
2018/04/02: N4741 git
2018/02/12: N4727 git
2017/11/27: N4713 git
2017/10/16: N4700 git
2017/07/30: N4687 git

Este parece ser o novo padrão:
Estes versão requer autenticação
2017/03/21: N4660 é o C ++ 17 Projecto de Norma

A seguir todos os projectos de versões do padrão :
Todos os seguintes são livremente para download
2017/03/21: N4659 git
2017/02/06: N4640 git
2016/11/28: N4618 git
2016/07/12: N4606 git
2016/05/30: N4594 git
2016/03/19: N4582 git
2015/11/09: N4567 git
2015/05/22: N4527 git
2015/04/10: N4431 git
2014/11/19: N4296 git

Este parece ser o velho C ++ 14 padrão :
Estes versão requer autenticação
2014/10/07: N4140 < a href = "https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf" rel = "nofollow noreferrer"> git Essencialmente C ++ 14 com pequenos erros e erros corrigidos < br> 2014/09/02: N4141 < a href = "https://github.com/cplusplus/draft/tree/n4141" rel = "nofollow noreferrer"> git padrão C ++ 14
2014/03/02: N3937 < br> 2014/03/02: N3936 < a href = "https://github.com/cplusplus/draft/blob/b7b8ed08ba4c111ad03e13e8524a1b746cb74ec6/papers/N3936.pdf" rel = "nofollow noreferrer"> git

A seguir todos os projectos de versões do padrão :
Todos os seguintes são livremente para download
2013/10/13: N3797 git
2013/05/16: N3691
2013/05/15: N3690
2012/11/02: N3485
2012-02-28: N3376
2012-01-16: N3337 git Essencialmente C ++ 11 com pequenos erros e erros corrigidos

Esteparece ser o velho C ++ 11 padrão :
Esta versão requer autenticação
2011-04-05: N3291 C ++ 11 (ou muito próximos)

A seguir todos os projectos de versões do padrão :
Todos os seguintes são livremente para download
2011-02-28: N3242 (diferenças de N3291 muito menor)
2010-11-27: N3225
2010-08-21: N3126
2010-03-29: N3090
2010-02-16: N3035
2009-11-09: N3000
2009-09-25: N2960
2009-06-22: N2914
2009-03-23: N2857
2008-10-04: N2798
2008-08-25: N2723
2008-06-27: N2691
2008-05-19: N2606
2008-03-17: N2588
2008-02-04: N2521
2007-10-22: N2461
2007-08-06: N2369
2007-06-25: N2315
2007-05-07: N2284
2006-11-03: N2134
2006-04-21: N2009
2005-10-19: N1905
2005-04-27: N1804

Este parece ser o velho C ++ 03 padrão:
Toda a seguir versões exigem autenticação
2004/11/05: N1733 < br> 2004-07-16: N1655 Unofficial
2004/02/07: N1577 C ++ 03 (ou muito próximos)
2001/09/13: N1316 Projecto Expandido Rectificação Técnico
1997-00-00: Projecto N1117 Expandido Rectificação Técnico

A seguir todos os projectos de versões do padrão :
Todos os seguintes são livremente para download
1996-00-00: N0836 Projecto de expandido Rectificação Técnico
1995-00-00: Documento de trabalho N0785 para Projecto Proposto Norma Internacional para Sistemas de Informação - linguagem de programação C ++

Outros Papéis interessantes:

2019 / 2018 / 2017 / 2016 / 2015 / 2014 / 2013 / 2012 / 2011

C99 é disponíveis online. Citou www.open-std.org :

O mais recente versão disponível publicamente da norma é o combinado C99 + TC1 + TC2 + TC3, WG14 N1256 , de 2007-09-07. Isto é um WG14 documento de trabalho, mas reflete o padrão consolidado no momento da emissão.

Projecto Links:

C ++ 11 (+ correções editoriais): N3337 HTML , PDF

C ++ 14 (+ correções editoriais): N4140 HTML , PDF

N1570 ( texto )

N1256

Rascunhos do padrão são difundido para comentário antes da ratificação e publicação.

Nota que um projecto de trabalho não é o padrão em vigor, e não é exatamente a norma publicada

Você pode encontrar o projecto de norma internacional para C ++ 0x útil.

dinheiro ISO custo normas, a partir de uma quantidade moderada (para uma versão em PDF), para um pouco mais (para uma versão do livro).

Enquanto eles não são finalizados no entanto, eles geralmente podem ser encontrados on-line, como rascunhos. Na maioria das vezes a versão final não difere significativamente do último projecto, por isso, enquanto não é perfeito, eles vão atender muito bem.

O C99 e C ++ 03 padrões estão disponíveis em forma de livro de Wiley:

Além disso, como já mencionado, o projecto de trabalho para as futuras normas é frequentemente disponíveis a partir de sites de comissões:

O projecto de C-201x está disponível como N1336 , e o projecto 0x C ++ como N3225 .

A ISO C e padrões C ++ são sangrentas caro. Por outro lado, os INCITS republica-los por muito menos. http://www.techstreet.com/ parece ter o PDF por US $ 30 (Procurar INCITS / ISO / IEC 14882: 2003).

Hardcopy versões estão disponíveis também. Olhar para as versões British Standards Institute, publicado pela Wiley.

O texto de um projecto do padrão ANSI C (aka C.89) está disponível online. Este foi padronizado pela comissão ANSI antes de serem aceites pela norma ISO C (C.90), de modo que a numeração das secções diferem (secções ANSI 2 a 4 correspondem aproximadamente às secções ISO 5 a 7), embora o conteúdo é (suposto para ser) essencialmente idêntico.

Os documentos padrões reais pode não ser o mais útil. A maioria dos compiladores não aplicarem integralmente as normas e às vezes pode realmente entrar em conflito. Assim, a documentação do compilador que você já teria será mais útil. Além disso, a documentação conterá observações e notas específicas da plataforma sobre quaisquer advertências.

Embora não seja um padrão real, há uma alteração de ISO C (C89 / 90) chamado C94 / 95, ou normativa Adenda 1. Foi integrado em C99, embora alguns compiladores, como Clang permitem -std=c94 especificar na linha de comando. ISO / IEC 9899: 1990 / Amd 1: 1995 pode ser comprado por um preço elevado de SAI GLOBAL (PDF ou em cópia).

Um resumo do documento pode ser encontrada aqui .

Quando o (então elaborar) ANSI C padrão estava sendo considerado para adoção de uma Norma Internacional em 1990, havia vários objeções porque não abordar questões de internacionalização. Porque o padrão já tinha sido vários anos na tomada, ele foi acordado que algumas mudanças seriam feitas para fornecer a base (para exemplo, foram adicionadas as funções em 7.10.7 subclause), e iria trabalhar ser realizada separadamente para fornecer internacionalização adequada de o padrão. Este trabalho culminou em Normativa Adenda 1.

reacção normativa Adenda 1 incorpora de C para ambas as limitações e promessas de conjuntos de caracteres internacionais. Dígrafos eo cabeçalho foram feitos para melhorar a aparência de programas C escritos em nacional variantes da norma ISO 646, sem, por exemplo, {} ou caracteres. No outra extremidade do espectro, as instalações ligado a e estender base apenas adequada do velho padrão em um conjunto completo e consistente das utilidades para a manipulação de caracteres de largura e cordas de vários bytes.

Este documento resume Normativa Adenda 1. Pretende-se informar rapidamente os leitores que já estão familiarizados com a Norma; isto não faz, e não pode, introduzir o assunto complexo por trás NA1, nem pode substituir o documento original como um manual de referência. (No entanto, ele tenta ser o mais preciso possível, e seu autor gostaria de ouvir sobre quaisquer erros ou omissões.)

http://c0x.coding-guidelines.com/ contém um pesquisável, baseada em HTML versão do padrão C. Na verdade, uma versão ligeiramente modificada:

Este site contém uma versão modificada do N1256. Inclui formulação que tenha sido eliminada do C99 (isto é, em forma atingida através de) e formulação que não usada para aparecer em C99 (isto é, em sublinhada formulário).

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