Vés al contingut

Usuari:Rmonleoniglesias/proves

De la Viquipèdia, l'enciclopèdia lliure

ANSI C és un Estàndard tècnic publicat pel Institut Nacional Nord-americà d'Estàndards (ANSI), per al llenguatge de programació C. Es recomana als desarrolladores de software en C que compleixin amb els requisits descrits en el document per facilitar així la portabilitat del codi.

Història d'ANSI C i ISO C

[modifica]

El primer estàndard que es va publicar per VV va ser el d'ANSI, si bé aquest estàndard va ser adoptat posteriorment per la International Organization for Standardization (ISO) y revisiones posteriores publicadas por ISO han sido adoptadas por ANSI. El término ANSI C es de uso más frecuente en la industria que ISO C. Un término más neutral es estándar C.

En 1983, el American National Standards Institute creó un comité, el X3J11, para establecer una especificación estándar para C. Tras un largo y arduo proceso, el estándar se terminó en 1989 i revisions posteriors publicades per ISO han estat adoptades per ANSI. El terme ANSI C és d'ús més freqüent en la indústria que ISO C. Un terme més neutral és 'estàndard C' .

El 1990, l'estàndard ANSI C (amb algunes modificacions menors) va ser adoptat per la International Organization for Standardization sota la denominació ISO / IEC 9899: 1990. A aquesta versió se li coneix com C90, si bé "C89" i "C90" són, a efectes pràctics, el mateix llenguatge de programació.

Al març de 2000, ANSI va adoptar l'estàndard ISO / IEC 9899: 1999. A aquest estàndard se li coneix com C99.

"C11"és el nou estàndard per al llenguatge de programació C.

Compatibilitat amb alguns compiladors importants

[modifica]

ANSI C és compatible per gairebé tots els compilador és, atès que la gran part del codi escrit en C està basat en ANSI C. Es dóna per fet que qualsevol programa escrit només segons l'estàndard C sense dependència alguna de hardware se compilación|compila de una forma correcta en qualsevol plataforma amb una implementació d'acord amb C. Si no es prenen aquestes mesures, la majoria de programes només podran compilar-se en una plataforma determinada o amb un compilador en particular. Per exemple, per utilitzar biblioteques no estàndard, com ara biblioteques Graphical user interfície | GUI, o per confiar en atributs específics del compilador o d'una plataforma, com ara la mida exacte de determinats tipus de dades i endianness de bytes.

Com detectar la compatibilitat

[modifica]

Per minimitzar les diferències entre C K&R i l'estàndard ANSI C, pot utilitzarse __STDC__, el macro ("estándar c") per dividir el codi entre seccions ANSI y K&R.

 #if __STDC__
 extern int getopt(int, char * const *, const char *);
 #else
 extern int getopt();
 #endif

És preferible utilitzar "#if __STDC__" com en l'exemple superior en lloc de "#ifdef __STDC__" perquè algunes implementacions poden atorgar a __STDC__ el valor zero per indicar que no són compatibles amb ANSI. "#if" s'encarregarà de substituir per zero (0) tots aquells identificadors que no van poder ser substituïts per un macro. D'aquesta manera encara que el macro __STDC__ no està definit "#if" funcionará.

En l'exemple de dalt s'ha utilitzat un prototip en la declaració d'una funció per implementacions compatibles amb ANSI, mentre que una declaració obsoleta -que no és cap prototipo- s'usa de forma diferent. Encara que són compatibles amb C99 i C90, no es recomana el seu ús.

Compiladors compatibles amb ANSI C

[modifica]
  • GCC
  • Visual C++|Microsoft Visual C++ (C90. Algunes característiques de C99) (MSVC no és compatible amb C99[1])
  • ARM RealView

Referències

[modifica]

Enllaços externs

[modifica]