Llenguatge C

De Viquipèdia
Dreceres ràpides: navegació, cerca

El llenguatge de programació C o llenguatge C, va ser creat per Dennis Ritchie i Ken Thompson als Laboratoris Bell d'AT&T, a principis de la dècada dels 70. C està basat en un llenguatge que havia creat Ken Thompson anomenat llenguatge B el 1970. El llenguatge C es va crear per la necessitat de tenir-ne un que fos més flexible que l'assemblador a l'hora de programar, però que mantingués la característica de ser un llenguatge proper a la màquina. En la seva absència, el llenguatge C es va fer per a poder crear el sistema operatiu Unix. Actualment, C és el llenguatge més utilitzat per a desenvolupar sistemes operatius i altres tipus de programari bàsic, i també per aplicacions en general. El llenguatge C++ es va desenvolupar a partir de C.

C és apreciat per l'eficiència del codi que produeix i és el llenguatge de programació més popular per a crear software de sistemes, tot i que també s'utilitza per a crear aplicacions.

Es tracta d'un llenguatge dèbilment tipat de mig nivell però amb moltes característiques de baix nivell. Disposa de les estructures típiques dels llenguatges d'alt nivell però, també disposa de construccions del llenguatge que permeten un control a molt baix nivell. Els compiladors solen oferir extensions al llenguatge que possibiliten barrejar codi en assemblador amb codi C o accedir directament a memòria o a dispositius perifèrics.

La primera estandarització del llenguatge C fou en ANSI, amb l'estàndar X3.159-1989. El llenguatge que defineix aquest estàndar fou conegut vulgarment com a ANSI C. Posteriorment, el 1990, fou ratificat com a estàndar ISO (ISO/IEC 9899:1990). L'adopció d'aquest estàndar és molt àmplia, així que, si els programes creats el segueixen, el codi és portable entre plataformes i/o arquitectures. En la pràctica, els programadors solen utilitzar elements no-portables depenents del compilador o del sistema operatiu.

Versions de C[modifica | modifica el codi]

Existeixen 3 versions principals de C:

  • Kernighan and Ritchie (K & R), basat en el llibre The C Programming Language (el llenguatge de programació C), de Kernighan i Ritchie
  • ANSI C / ISO C, és la versió que es va estandaritzar el 1990
  • C99, adoptat com a estàndard per l'ANSI el 2000

Programa d'exemple[modifica | modifica el codi]

Aquest programa escriu "Hola món" al dispositiu de sortida de defecte (habitualment el monitor).

 #include <stdio.h>
 
 int main(void)
 {
     printf("Hola, món!\n");
     return 0;
 }

La primera línia del programa consisteix en una directiva del preprocesador, indicada per #include. Això provoca que el preprocessador -la primera eina a examinar el codi durant la compilació- substitueixi tota la línia pel contingut complet del fitxer de capçalera stdio.h que conté les declaracions de les funcions estàndards d'entrada i sortida com printf.

La següent línia indica que s'està definint una funció amb el nom de main que retornarà un valor de tipus enter i que no accepta cap paràmetre.

Els claudàtors delimiten un bloc de codi, en aquest cas a l'anar precedits de la declaració de la funció main, correspon a la seva definició.

La primera línia del bloc de definició de main és printf("Hola, món!\n"); Aquesta línia indica que s'ha de cridar una funció printf i s'ha de passar com argument a aquesta funció la cadena "Hola, món!\n". La funció printf forma part de la llibreria de funcions estàndard de C i s'encarrega d'imprimir la cadena que se li passa com argument, per la sortida estàndard que sol ser la pantalla. El caràcter \n indica que s'ha de fer un salt de línia i retorn de carro després d'imprimir la cadena.

Per últim la línia següent indica que s'ha de retornar el valor 0. Aquest valor es retorna al procés que ha cridat el programa -sol ser el sistema operatiu- indicant en aquest cas absència d'errors en l'execució.

Llenguatges derivats[modifica | modifica el codi]

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Llenguatge C Modifica l'enllaç a Wikidata