Sintaxi C

conjunt de normes que regeixen l'escriptura del programari en el llenguatge

La sintaxi del llenguatge de programació C és el conjunt de regles que regeixen l'escriptura de programari en C. Està dissenyat per permetre programes que són extremadament concisos, tenen una estreta relació amb el codi objecte resultant i, tanmateix, proporcionen una abstracció de dades de nivell relativament alt. C va ser el primer llenguatge d'alt nivell amb gran èxit per al desenvolupament de sistemes operatius portàtils.[1][2]

Un fragment de codi C que imprimeix "Hola, món!"

La sintaxi C fa ús del principi de maximal munch.[3]

Estructures de dades

modifica

Tipus de dades primitives

modifica

El llenguatge de programació C representa els nombres en tres formes: integral, real i complex. Aquesta distinció reflecteix distincions similars en l'arquitectura del conjunt d'instruccions de la majoria de les unitats centrals de processament. Els tipus de dades integrals emmagatzemen nombres en el conjunt de nombres enters, mentre que els nombres reals i complexos representen nombres (o parell de nombres) en el conjunt de nombres reals en forma de coma flotant.

Tots els tipus d'enters C tenen variants signed i unsigned. Si no s'especifica explícitament signed o unsigned, en la majoria de les circumstàncies s'assumeix signed. Tanmateix, per raons històriques, char simple és un tipus diferent tant de signed char com unsigned char. Pot ser un tipus signat o un tipus sense signar, segons el compilador i el conjunt de caràcters (C garanteix que els membres del conjunt de caràcters bàsics C tinguin valors positius). A més, els tipus de camp de bits especificats com int pla poden estar signats o sense signar, depenent del compilador.[4]

Punters

modifica

En les declaracions, el modificador d'asterisc (*) especifica un tipus de punter. Per exemple, quan l'especificador int faria referència al tipus d'enter, l'especificador int* fa referència al tipus "punter a enter". Els valors del punter associen dues peces d'informació: una adreça de memòria i un tipus de dades. La següent línia de codi declara una variable punter a enter anomenada ptr :

int *ptr;

Matrius

modifica

Definició

modifica

Les matrius s'utilitzen en C per representar estructures d'elements consecutius del mateix tipus. La definició d'una matriu (de mida fixa) té la sintaxi següent:

int array[100];

que defineix una matriu anomenada array per contenir 100 valors del tipus primitiu int. Si es declara dins d'una funció, la dimensió de la matriu també pot ser una expressió no constant, en aquest cas s'assignarà memòria per al nombre especificat d'elements. En la majoria de contextos en un ús posterior, una menció de la matriu de variables es converteix en un punter al primer element de la matriu. L'operador sizeof és una excepció: sizeof array dóna la mida de tota la matriu (és a dir, 100 vegades la mida d'un int, i sizeof(array) / sizeof(int) retornarà 100).

Accedint elements

modifica

La funció principal per accedir als valors dels elements d'una matriu és l'operador de subíndex de matriu. Per accedir a l'element i -indexat de array, la sintaxi seria array[i], que fa referència al valor emmagatzemat en aquest element de matriu.

Cadenes

modifica

En C, els literals de cadena estan envoltats de cometes dobles (") (per exemple, "Hello world!") i es compilen en una matriu dels valors de char especificats amb un codi de caràcter final nul addicional (valor 0) per marcar el final de la cadena.

Operadors

modifica

Estructures de control

modifica

C és un llenguatge de forma lliure.

L'estil de reforç varia d' un programador a un altre i pot ser objecte de debat. Vegeu l'estil de sagnat per a més detalls.

Enunciats compostos

modifica

En els elements d'aquesta secció, qualsevol <statement> es pot substituir per una sentència composta. Els enunciats compostos tenen la forma:

{
    <optional-declaration-list>
    <optional-statement-list>
}

Declaracions de selecció

modifica

C té dos tipus de sentències de selecció : la sentència if i la sentència switch.

La declaració if té la forma:

if (<expression>)
    <statement1>
else
    <statement2>

La instrucció switch fa que el control es transfereixi a una de diverses sentències depenent del valor d'una expressió:

switch (<expression>)
{
    case <label1> :
        <statements 1>
    case <label2> :
        <statements 2>
        break;
    default :
        <statements 3>
}

Declaracions d'iteració

modifica

C té tres formes de declaració d'iteració:

do
    <statement>
while (<expression> ) ;

while (<expression> )
    <statement>

for (<expression> ; <expression> ; <expression> )
    <statement>

A les sentències while i do, la subinstrucció s'executa repetidament sempre que el valor de l' expression sigui diferent de zero (equivalent a true). Amb while, la prova, inclosos tots els efectes secundaris de <expression>, es produeix abans de cada iteració (execució de <statement> ); amb do, la prova es produeix després de cada iteració. Per tant, una instrucció do sempre executa la seva subinstrucció almenys una vegada, mentre que while pot no executar la subinstrucció en absolut.

Declaracions de salt

modifica

Una instrucció continue pot aparèixer només dins d'una instrucció d'iteració i fa que el control passi a la part de continuació del bucle de la instrucció d'iteració més interna. És a dir, dins de cadascuna de les declaracions

while (expression)
{
    /* ... */
    cont: ;
}

do
{
    /* ... */
    cont: ;
} while (expression);

for (expr1; expr2; expr3) {
     /* ... */
     cont: ;
}

Funcions

modifica

Sintaxi

modifica

La definició de la funció AC consta d'un tipus de retorn (void si no es retorna cap valor), un nom únic, una llista de paràmetres entre parèntesis i diverses declaracions:

<return-type> functionName( <parameter-list> )
{
    <statements>
    return <expression of type return-type>;
}

Punter a funció

modifica

Un punter a una funció es pot declarar de la següent manera:

<return-type> (*<function-name>)(<parameter-list>);

Referències

modifica
  1. «C Syntax» (en anglès americà). [Consulta: 19 desembre 2023].
  2. alexbuckgit. «C docs - get started, tutorials, reference.» (en anglès americà). [Consulta: 19 desembre 2023].
  3. «The GNU C Reference Manual» (en anglès). [Consulta: 19 desembre 2023].
  4. «Learn C Programming» (en anglès). [Consulta: 19 desembre 2023].