C/Biblioteca estándar

En Galilibros, o Wikibooks en galego.
< C
C
Biblioteca estándar Seguir con assert.h


A biblioteca estándar de C é unha biblioteca de funcións estandarizada utilizada para facer uso das operacións máis habituais, como a entrada e saída de datos ou a xestión de cadeas de caracteres. Ao contrario que outras linguaxes de programación, C non inclúe estas funcións entre as súas palabras clave internas, polo que case todos os programas apóianse no uso das funcións da biblioteca estándar.

Historia[editar]

Antes de estandarizarse, a linguaxe de programación C non estaba dotada de funcionalidades internas para operacións de entrada e saída, como outras linguaxes. Co tempo, as comunidades de usuarios de C compartiron ideas e usos do que hoxe se coñece como a biblioteca estándar de C para fornecer dita funcionalidade. Moitas destas ideas incluíronse nalgún momento dado na definición estándar de C.

Tanto Unix como C creáronse nos AT&T's Bell Laboratories entre finais dos sesenta e principios dos setenta. Durante os anos setenta a linguaxe de programación C volveuse cada vez máis popular, con moitas universidades e organizacións comezando a crear as súas propias variacións da linguaxe para os seus propios proxectos.

A comezos dos oitenta comezaron a facerse evidentes os problemas de compatibilidade entre as diferentes aplicacións de C. En 1983, o American National Standards Institute (ANSI) reuniuse en comité para establecer unha especificación estándar de C, coñecida coma “ANSI C”. O seu traballo culminou na creación do así chamado estándar C89 en 1989. Parte do estándar resultante foron unha serie de bibliotecas de software chamadas a “biblioteca estándar de ANSI C”.

Revisións posteriores do estándar de C engadiron diversos ficheiros de cabeceira solicitados á biblioteca. O soporte para estas novas extensións varía segundo a aplicación.

Os ficheiros de cabeceira iso646.h, wchar.h e wctype.h enghadíronse ao Normative Addendum 1 (NA1), un engadido ao estándar de C ratificado en 1995.

Os ficheiros de cabeceira complex.h, fenv.h, inttypes.h, stdbool.h, stdint.h e tgmath.h engadíronse co C99, unha revisión do estándar de C publicada en 1999.

Deseño[editar]

A declaración de cada función mantense nun ficheiro de cabeceira, mentres que a verdadeira aplicación das funcións están separadas nun ficheiro de biblioteca. Os nomes e ámbitos dos ficheiros de cabeceira puxéronse en común, pero a organización das bibliotecas aínda mantén certa diversidade. A biblioteca estándar adoita distribuírse xunto cun compilador. Dado que os compiladores de C adoitan fornecer funcionalidades adicionais non especificadas no ANSI C, a biblioteca estándar de cada compilador adoita ser na súa maior parte incompatible coas bibliotecas estándar do resto dos compiladores.

Gran parte da biblioteca estándar de C demostrou estar ben deseñada. Algunhas partes, porén, considéranse teñen erros. Por exemplo, as funcións de introdución de cadeas gets() (e scanf() cando se usa para a lectura de cadeas) dan lugar a moitos erros de lectura incompleta, e a meirande parte das guías de programación recomendan evitar o seu uso. Outra función problemática é strtok(), deseñada como un analizador léxico primitivo pero moi “fráxil” e difícil de utilizar.


C
Biblioteca estándar Seguir con assert.h