Casa > Q > Qual É A Última Versão Da Linguagem De Programação C?

Qual é a última versão da linguagem de programação C?

Em 1978, Brian Kernighan e Dennis Ritchie publicaram a primeira edição da linguagem de programação em C. Este livro, conhecido pelos programadores em C como "K&R", serviu durante muitos anos como uma especificação informal da linguagem. A versão do C que ele descreve é comumente chamada de K&R C. A segunda edição do livro cobre o padrão ANSI C mais recente, descrito abaixo.

K&R introduziu várias características da linguagem:

  • Biblioteca padrão de E/S>li> tipo de dado int longo>li> tipo de dado int não assinado>li> Operadores de atribuição de dados compostos do formulário =op (como =-) foram alterados para o formulário op= (isto é, -=) para remover a ambiguidade semântica criada por construções como i=-10, que tinham sido interpretadas como i =- 10 (decremento iby 10) em vez da possivelmente pretendida i = -10 (let i be -10).

Nos anos seguintes à publicação do K&R C, várias funcionalidades foram adicionadas à linguagem, suportadas por compiladores da AT&T e alguns outros fornecedores. Estas incluíram:

  • funçõesvoid (ou seja funções sem valor de retorno)>li>funções retornando estrutura ou tipos de união (ao invés de ponteiros)li>li> atribuição para tipos de dados estruturadosli>li> tipos numerados>p>C89

Em 1983, o American National Standards Institute formou um comitê, X3J11, para estabelecer uma especificação padrão de C. A norma foi concluída em 1989 e ratificada como ANSI X3.159-1989 "Linguagem de Programação C". Esta versão da linguagem é frequentemente referida como "ANSI C". Mais tarde, às vezes a etiqueta "C89" é usada para distingui-la de C99 mas usando o mesmo método de etiquetagem.

C90

O mesmo padrão de C89 foi ratificado pela Organização Internacional de Normalização como ISO/IEC 9899:1990, com apenas alterações de formatação, que às vezes é referida como C90. Portanto, os termos "C89" e "C90" referem-se essencialmente à mesma linguagem.

C95

Em 1995, a ISO publicou uma extensão, chamada Emenda 1, para a norma ANSI-C. Seu nome completo finalmente foi ISO/IEC 9899/AMD1:1995 ou apelidado C95. Além da correção de erros, houve outras mudanças nas capacidades da linguagem, tais como:

  • Improved multi-byte and wide charactersupport in the standard library, introduzindo e assim como multi-byte I/O
  • Adição de digraphs à linguagem
  • Especificação de macros padrão para a especificação alternativa de operadores, por exemplo e para &&&>li>Especificação da macro padrão __STDC_VERSION__ com valor 199409L
>p>Além da emenda, duas correções técnicas foram publicadas pela ISO para C90:
  • ISO/IEC 9899 TCOR1 in 1995
  • ISO/IEC 9899 TCOR2 in 1996

Preprocessor Test for C95 compatibility

  1. #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L 
  2. /* C95 compatible source code. */ 
  3. #elif defined(__ANSI__) 
  4. /* C89 compatible source code. */ 
  5. #endif 

C99

In March 2000, ANSI adopted the ISO/IEC 9899:1999 standard. Este padrão é comumente referido como C99.

algumas adições notáveis ao padrão anterior incluem:

  • Novos tipos de dados incorporados: longo comprimento, _Bool, _Complex, e _Imaginary>li>Novos recursos de linguagem do núcleo, incluindo índices de array estático, inicializadores designados, literais compostos, matrizes de comprimento variável, membros de array flexível, macros variádicas, e palavra-chave restritali>Novos cabeçalhos de biblioteca do núcleo, incluindo stdint.h, , fenv.h,
  • Improved compatibility with several C++ features, including inline functions, single-line comments, mixing declarations and code, universal character names in identifiers>li>Remover várias características perigosas da linguagem C89, tais como declarações de funções implícitas e int>ul>p>Três correções técnicas foram publicadas pela ISO para C99:>ul>>li>ISO/IEC 9899:1999/Cor.1:2001(E)
  • ISO/IEC 9899:1999/Cor.2:2004(E)
  • ISO/IEC 9899:1999/Cor.3:2007(E)

A standard macro __STDC_VERSION__ is defined with value 199901L to indicate that C99 support is available.

C11

In 2007, work began on another revision of the C standard, informally called "C1X" until its official publication on 2011-12-15. The C standards committee adopted guidelines to limit the adoption of new features that had not been tested by existing implementations.

The C11 standard adds numerous new features to C and the library

  • Including type generic macros
  • Anonymous structures
  • Improved Unicode support
  • Atomic operations
  • Multi-threading
  • Bounds-checked functions.

It also makes some portions of the existing C99 library optional, and improves compatibility with C++.

The standard macro __STDC_VERSION__ is defined as 201112L to indicate that C11 support is available.

De Kally Dupere

Quais são os contras da One Plus Nord CE? :: A opção de QI é um esquema?