Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Unitatile lexicale ale limbajului C
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

In limbajul C exista sase tipuri de unitati lexicale: identificatori, cuvinte-cheie, constante, siruri, operatori si separatori.

2.1. Identificatori

Un identificator este o succesiune de litere si cifre dintre care primul caracter este in mod obligatoriu o litera. Se admit si litere mari si litere mici dar ele se considera caractere distincte. Liniuta de subliniere _ este considerata ca fiind litera. Deci alfabetul peste care sint definiti identificatorii este urmatorul:

A ? ?a,...,z,A,...,Z,0,...,9,_?

2.2. Cuvinte cheie

Cuvintele cheie sint identificatori rezervati limbajului. Ei au o semnificatie bine determinata si nu pot fi utilizati decit asa cum cere sintaxa limbajului. Cuvintele-cheie se scriu obligatoriu cu litere mici. Aceste cuvinte sint (fiecare mediu de programare C poate folosi si alte cuvinte rezervate):

int register if const char auto else void float extern for switch double static while case long struct do default short union continue return unsigned typedef break sizeof v5b5bv

2.3. Constante

In limbajul C exista urmatoarele tipuri de constante: intreg (zecimal, octal, hexazecimal), intreg lung explicit, flotant, caracter, simbolic.

Constante intregi

O constanta intreaga consta dintr-o succesiune de cifre.
O constanta octala este o constanta intreaga care incepe cu 0 (cifra zero), si este formata cu cifre de la 0 la 7.
O constanta hexazecimala este o constanta intreaga precedata de 0x sau 0X (cifra 0 si litera x). Cifrele hexazecimale includ literele de la A la F si de la a la f cu valori de la 10 la 15.
In orice alt caz, constanta intreaga este o constanta zecimala.
Exemplu: constanta zecimala 31 poate fi scrisa ca 037 in octal si 0x1f sau 0X1F in hexazecimal.
O constanta intreaga este generata pe un cuvint (doi sau patru octeti, daca sistemul de calcul este pe 16 sau 32 de biti).
O constanta zecimala a carei valoare depaseste pe cel mai mare intreg cu semn reprezentabil pe un cuvint scurt (16 biti) se considera de tip long si este generata pe 4 octeti.
O constanta octala sau hexazecimala care depaseste pe cel mai mare intreg fara semn reprezentabil pe un cuvint scurt se considera de asemenea de tip long.
O constanta intreaga devine negativa daca i se aplica operatorul unar de negativare ’-’.




Constante de tip explicit

O constanta intreaga zecimala, octala sau hexazecimala, urmata imediat de litera l sau L este o constanta lunga. Aceasta va fi generata in calculator pe 4 octeti.
Exemplu: 123L.
O constanta intreaga zecimala urmata imediat de litera u sau U este o constanta de tip intreg fara semn. Litera u sau U poate fi precedata de litera l sau L.
Exemplu: 123lu.

Constante flotante

O constanta flotanta consta dintr-o parte intreaga, un punct zecimal, o parte fractionara, litera e sau E si optional, un exponent care este un intreg cu semn. Partea intreaga si partea fractionara sint constituite din cite o succesiune de cifre. Intr-o constanta flotanta, atit partea intreaga cit si partea fractionara pot lipsi dar nu ambele; de asemenea poate lipsi punctul zecimal sau litera e si exponentul, dar nu deodata (si punctul si litera e si exponentul).
Exemplu: 123.456e?7 sau 0.12e?3
Orice constanta flotanta se considera a fi in precizie extinsa.

Constante caracter

O constanta caracter consta dintr-un singur caracter scris intre apostrofuri, de exemplu 'x'. Valoarea unei constante caracter este valoarea numerica a caracterului, in setul de caractere al calculatorului. De exemplu in setul de caractere ASCII caracterul zero sau '0' are valoarea 48 in zecimal, total diferita de valoarea numerica zero.
Constantele caracter participa la operatiile aritmetice ca si oricare alte numere. De exemplu, daca variabila c contine valoarea ASCII a unei cifre, atunci prin instructiunea: c = c - '0' ; aceasta valoare se transforma in valoarea efectiva a cifrei.
Anumite caractere negrafice si caractere grafice ' (apostrof) si \ (backslash) pot fi reprezentate ca si constante caracter cu ajutorul asa numitor secvente de evitare. Secventele de evitare ofera de altfel si un mecanism general pentru reprezentarea caracterelor mai greu de introdus in calculator si a oricaror configuratii de biti. Aceste secvente de evitare sint:

\n new-line \r carriage return \\ backslash
\t tab orizontal \f form feed \' apostrof
\b backspace \a semnal sonor \" ghilimele
\ddd configuratie de biti (ddd)

Aceste secvente, desi sint formate din mai multe caractere, ele reprezinta in realitate un singur caracter. Secventa '\ddd' unde ddd este un sir de 1 pina la 3 cifre octale, genereaza pe un octet valoarea caracterului dorit sau a configuratiei de biti dorite, date de sirul ddd.
Exemplu: secventa '\040' va genera caracterul spatiu.
Un caz special al acestei constructii este secventa '\0' care indica caracterul NULL, care este caracterul cu valoarea zero. '\0' este scris deseori in locul lui 0 pentru a sublinia natura de caracter a unei anumite expresii.
Cind caracterul care urmeaza dupa un backslash nu este unul dintre cele specificate, backslash-ul este ignorat. Atragem atentia ca toate caracterele setului ASCII sint pozitive, dar o constanta caracter specificata printr-o secventa de evitare poate fi si negativa, de exemplu '\377' are valoarea -1.

Constante simbolice

O constanta simbolica este un identificator cu valoare de constanta. Valoarea constantei poate fi orice sir de caractere introdus prin constructia #define (vezi capitolul 8).
Exemplu: #define MAX 1000
Dupa intilnirea acestei constructii compilatorul va inlocui toate aparitiile constantei simbolice MAX cu valoarea 1000.
Numele constantelor simbolice se scriu de obicei cu litere mari (fara a fi obligatoriu).

2.4. Siruri

Un sir este o succesiune de caractere scrise intre ghilimele, de exemplu "ABCD".
Ghilimelele nu fac parte din sir; ele servesc numai pentru delimitarea sirului. Caracterul " (ghilimele) poate aparea intr-un sir daca se utilizeaza secventa de evitare \". In interiorul unui sir pot fi folosite si alte secvente de evitare pentru constante caracter, de asemenea poate fi folosit caracterul \ (backslash) la sfirsitul unui rind pentru a da posibilitatea continuarii unui sir pe mai multe linii, situatie in care caracterul \ insusi va fi ignorat.
Pentru sirul de caractere se mai foloseste denumirea constanta sir sau constanta de tip sir.
Cind un sir apare intr-un program C, compilatorul creeaza un masiv de caractere care contine caracterele sirului si plaseaza automat caracterul NULL ('\0') la sfirsitul sirului, astfel ca programele care opereaza asupra sirurilor sa poata detecta sfirsitul acestora. Aceasta reprezentare inseamna ca, teoretic, nu exista o limita a lungimii unui sir, iar programele trebuie sa parcurga sirul, analizindu-l pentru a-i determina lungimea. Se admit si siruri de lungime zero.
Tehnic, un sir este un masiv ale carui elemente sint caractere. El are tipul masiv de caractere si clasa de memorie static (vezi sectiunea 3.1). Un sir este initializat cu caracterele date (vezi sectiunea 5.4).
La alocare, memoria fizica ceruta este cu un octet mai mare decit numarul de caractere scrise intre ghilimele, datorita adaugarii automate a caracterului null la sfirsitul fiecarui sir.

Exemplu. Functia strlen(s) returneaza lungimea sirului de caractere s, excluzind caracterul terminal null.

int strlen(char sai) A
/* returneaza lungimea sirului */ int i; i=0;
while (saii!='\0')
++i; return i;
S

Atragem atentia asupra diferentei dintre o constanta caracter si un sir care contine un singur caracter. "x" nu este acelasi lucru cu 'x'. 'x' este un singur caracter, folosit pentru a genera pe un octet valoarea numerica a literei x, din setul de caractere al calculatorului. "x" este un sir de caractere, care in calculator se reprezinta pe doi octeti, dintre care primul contine un caracter (litera x), iar al doilea caracterul NULL care indica sfirsitul de sir.

2.5. Operatori

Limbajul C prezinta un numar mare de operatori care pot fi clasificati dupa diverse criterii. Exista operatori unari, binari si ternari, operatori aritmetici, logici, operatori pe biti etc.
Intr-un capitol separat vom prezenta clasele de operatori care corespund la diferite nivele de prioritate.

2.6. Separatori

Un separator este un caracter sau un sir de caractere care separa unitatile lexicale intr-un program scris in C.
Separatorul cel mai frecvent este asa numitul spatiu alb (blanc) care contine unul sau mai multe spatii, tab-uri, new-line-uri sau comentarii.
Aceste constructii sint eliminate in faza de analiza lexicala a compilarii.
Dam mai jos lista separatorilor admisi in limbajul C.

( ) Parantezele mici ? incadreaza lista de argumente ale unei functii sau delimiteaza anumite parti in cadrul expresiilor aritmetice etc
A S Acoladele ? incadreaza instructiunile compuse, care constituie corpul unor instructiuni sau corpul functiilor
a i Parantezele mari ? incadreaza dimensiunile de masiv sau indicii elementelor de masiv
" " Ghilimelele ? incadreaza un sir de caractere
' ' Apostrofurile ? incadreaza un singur caracter sau o secventa de evitare
; Punct si virgula ? termina o instructiune
/* Slash asterisc ? inceput de comentariu
*/ Asterisc slash ? sfirsit de comentariu

Un comentariu este un sir de caractere care incepe cu caracterele /* si se termina cu caracterele */.
Un comentariu poate sa apara oriunde intr-un program, unde poate aparea un blanc si are rol de separator; el nu influenteaza cu nimic semnificatia programului, scopul lui fiind doar o documentare a programului.
Nu se admit comentarii imbricate.


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta