Sunteți pe pagina 1din 12

C este un limbaj de programare standardizat, compilat, de nivel mediu.

Este implementat pe majoritatea platformelor de calcul existente azi, i este cel mai popular limbaj de programare pentru scrierea de software de sistem. Este apreciat pentru eficien a codului obiect pe care l poate genera, i pentruportabilitatea sa. A fost dezvoltat la nceputul anilor 1970 de Ken Thompson i Dennis Ritchie, care aveau nevoie de un limbaj simplu i portabil pentru scrierea nucleuluisistemului de operare UNIX. Sintaxa limbajului C a stat la baza multor limbaje create ulterior azi: C++, Java, JavaScript, C#. i nc populare

C este un limbaj de programare relativ minimalist ce opereaz n strns leg tur cu hardware-ul, fiind cel mai apropiat de limbajul de asamblare fa de majoritatea celorlalte limbaje de programare. Cuprins [ascunde] 1 Scurt introducere n C 2 Un exemplu de program C ("Hello World!") 3 Tipuri de date 4 Alocarea memoriei 5 Sintaxa 6 Istoric
o o o o

6.1 nceputurile limbajului de programare C 6.2 K&R C 6.3 ANSI C 6.4 C99 i Pascal 7.1 Compara ie cu limbajul Pascal 7.2 C i i C++ 7.3 Exemplu i ISO C

7 Diferen e ntre C, C++


o o o

8 Vezi

9 Bibliografie 10 Leg turi externe [modificare]Scurt introducere n C C este prezentat uneori ca "asamblor portabil", f cndu-se astfel diferen ele principale fa de limbajele de asamblare: codul unui program C poate fi compilat i rulat pe aproape orice tip de ma in (calculator), asem n tor altor limbaje de programare, n timp ce limbajele de asamblare

sunt specifice unui anumit model de ma in . Limbajul C apar ine clasei limbajelor de nivel sc zut sau de nivel mediu, aceasta indicnd strnsa leg tur ntre interoperabilitate i echipamentul hardware. C a fost creat avnd drept scop important de a face ca programele mari s poat fi scrise mai u or i cu mai pu ine erori n paradigma program rii procedurale, dar f r a pune un obstacole n scriereacompilatorului de C, care este nc rcat de caracteristicile complexe ale limbajului. C are urmatoarele caracteristici importante:
        

Este un limbaj de baz simplu, cu importante func ionalit i cum ar fi func iile matematice sau cele de manipulare ale fi ierelor Este focalizat pe paradigma program rii procedurale, care faciliteaz programarea ntr-un mod structurat Utilizeaz un set simplu de tipuri de date ce mpiedic multe opera ii neinten ionate Folose te un limbaj preprocesor, preprocesorul C, pentru sarcini cum ar fi definirea de macrouri i includerea mai multor fi iere surs Permite accesarea la nivel sc zut a memoriei calculatorului prin utilizarea pointerilor Permite folosirea parametrilor, care sunt comunica i func iilor prin valoare i nu prin referin Pointeri la func ii, ce permit forme rudimentare de nchidere (englez closure) i polimorfism Declararea variabilelor Structuri de date sau tipuri de date agregate, definite de utilizator prin (struct), ce permit ca date nrudite s fie combinate i manipulate ca un ntreg[necesit citare]

Printre caracteristicile ce lipsesc n C, dar care pot fi g site n alte limbaje de programare se enumer :
       

Un sistem automat de colectare a reziduurilor (de memorie) (englez Garbage collection) Clasele i obiectele (programarea orientat pe obiecte) Un sistem avansat de tipuri de date Programarea generic Supranc rcarea Metaprogramarea Suport nativ pentru programarea multifir (englez multithreaded) i func iile de re ea Procesarea listelor

De i lista minusurilor limbajului C este destul de lung , aceasta nu reprezint un dezavantaj suficient de mare pentru inhiba utilizarea limbajului C n practic , deoarece permite ca noi compilatoare s poat fi scrise pe noi tipuri de platforme i pentru c permite programatorului s in bine sub control programul pe care l scrie. Acesta este unul din motivele care face ca un cod scris n C s fie mult mai eficient dect dac ar fi scris n alte limbaje de programare. Numai un cod scris cu foarte mare grij ntr-un limbaj de asamblare poate fi mai performant, deoarece are control integral asupra ma inii, dar performan a avansat a compilatoarelor, combinat cu complexitatea noilor tipuri de procesoare, a f cut ca limbajul C s fie preferat i s fie acceptat din ce n ce mai mult de programatori.

Una din consecin ele accept rii i eficien ei C-ului este aceea c multe compilatoare, biblioteci i interpretoare ale limbajelor de nivel nalt sunt adesea implementate n C. [modificare]Un exemplu de program C ("Hello World!") Urm torul exemplu de program a ap rut n prima edi ie a c r ii lui Brian Kernighan i Dennis Ritchie i a devenit un exemplu standard de program introductiv n marea majoritate a c r ilor de programare, indiferent de limbajul de programare. Programul afi eaz Hello, World! la ie irea standard, care este, de obicei, un terminal sau monitor. Poate s fie, totu i, i un fi ier sau alt dispozitiv hardware, depinznd de maparea ie irii standard n momentul execu iei programului. #include <stdio.h> main() { printf("Hello, World!\n"); } Programul prezentat mai sus va fi compilat corect de marea majoritate a compilatoarelor moderne. Totu i, va produce unele mesaje de avertizare dac va fi compilat de un compilator ce respect standardul ANSI C. Mai mult, codul nu va fi compilat, returnnd mesaje de eroare, dac se respect standardele C99, deoarece variabila de ntors, de tip int, nu va putea fi dedus dac nu a fost specificat n codul surs . Aceste mesaje pot fi eliminate, aducnd cteva schimb ri minore programului original: #include <stdio.h> int main(void) { printf("Hello, World!\n"); return 0; } Urmeaz o discu ie linie cu linie a programului prezentat mai sus: #include <stdio.h> Prima linie a programului reprezint o directiv preprocesor, #include. Aceasta face ca preprocesorul primul utilitar ce examineaz codul surs cnd acesta este compilat s substituiasc linia respectiv cu con inutul unui fi ier sau al entit ii la care se face referire. n acest caz, fi ierul header ("antet") stdio.h care con ine defini iile func iilor de manipulare a intr rii i ie irii standard va nlocui acea linie. Parantezele unghiulare ce cuprind stdio.h indic prezen a acelui fi ier n una din loca iile date preprocesorului prin calea de c utare (englez search path) a fi ierelor header (aceste fi iere se afl n directorul "include" al platformei, respectiv compilatorului folosit). int main(void)

Urm toarea linie define te func ia numit main. Func ia main are un loc bine stabilit n programele C. Cnd un program C este executat, aceasta este prima func ie executat (punctul de intrare n program). Prezen a acesteia este obligatorie pentru ca un program s poat fi executat. Por iunea de cod int indic faptul c valoare ntoars valoare pe care func ia main o va ntoarce procesuluiapelant este un ntreg. (void) indic faptul c func ia main nu prime te nici un argument la apelare. { Paranteza acolad deschis indic nceputul codului pentru func ia main. printf("Hello World\n"); Aceasta linie apeleaz caut i execut codul func ia printf, care a fost definit n fi ierul header stdio.h. n cadrul acestui apel, func iei printf i este pasat (transmis) un singur argument, irul de caractere "Hello, World!\n". Secven a \n este denumit secven escape (cu semnifica ie special ), care se traduce prin caracterul EOL (end-of-line, sfr itul liniei), pentru a muta cursorul pe linia urm toare. Valoarea de ntoarcere a func iei printf este un ntreg int, dar nu este folosit n acest caz (este "ignorat "). return 0; Aceast instruc iune termin execu ia codului func iei main i face ca aceasta s ntoarc valoarea 0 procesului apelant, n cazul acesta sistemului de operare. } Paranteza acolad nchis indic terminarea codului func iei main. Compatibilitatea total cu alte compilatoare ce respect standardul C99 poate fi ins atins prin urm torul cod: #include <stdio.h> #include <stdlib.h> int main(void) { printf("Hello world!\n"); return EXIT_SUCCESS; } Constanta EXIT_SUCCESS este definit n headerul stdlib.h, de aceea a fost necesar includerea sa. Pe majoritatea platformelor aceast constant are valoarea zero. [modificare]Tipuri de date C are un sistem de tipuri de date similar cu cel al descenden ilor ALGOL, cum ar fi Pascal, dar totu i cu anumite diferen e. Cuprinde tipuri de date cum ar fi ntregi de diferite dimensiuni, cu sau f r semn, numere n virgul mobil , enumer ri (enum), structuri de date (struct) i uniuni (union). C utilizeaz foarte mult pointerii, un tip de referin foarte simplu, care p streaz adresa loca iei din memorie. Adresa poate fi manipulat cu ajutorul atribuirilor i

a aritmeticii pointerilor. n momentul rul rii unui program, un pointer reprezint o adres de memorie. n momentul compil rii, un pointer este un tip de dat complex, ce reprezint att adresa de memorie ct i tipul de dat . Acest lucru permite expresiilor ce utilizeaz pointeri s fie evaluate dup tipul de dat . Pointerii au mai multe utiliz ri n C. De exemplu, irurile de caractere (englez text string) sunt adesea reprezentate printr-un pointer la un vector de caractere. Alocarea dinamic a memoriei este realizat tot cu ajutorul pointerilor. Un pointer null are o valoare rezervat , indicnd faptul c face referire la o loca ie nevalid . Acest lucru este folositor n cazuri speciale cum ar fi pointerul next (urm torul) n nodul final al unei liste nl n uite. Dereferen ierea unui pointer null poate cauza un comportament imprevizibil al aplica iei. De asemenea, exist i pointeri de tip void, fapt ce indic referirea la un obiect de tip necunoscut. Ace ti pointeri sunt foarte folositori n programarea generic . Deoarece dimensiunea i tipul obiectelor la care acest tip de pointeri face referire sunt necunoscute, ace tia nu pot fi dereferen ia i, dar pot fi converti i la alt tip de pointeri. n C, anterior standardului C99, tablourile (vectorii) sunt de dimensiune fix , static , cunoscut la momentul compil rii; n practic , acest lucru nu reprezint o piedic , avnd n vedere c se pot aloca blocuri de memorie n momentul rul rii, tratndu-le ca pe tablouri utiliznd libr ria standard. Spre deosebire de multe alte limbaje de programare, C reprezint tablourile ca i pe pointeri: o adres i un tip de dat . Prin urmare, valorile index pot dep i dimensiunea actual a unui tablou. De asemenea, C ofer posibilitatea de lucru cu tablouri multidimensionale. Din punct de vedere semantic, tablourile multidimensionale sunt tablouri de tablouri, dar, din punct de vedere fizic, acestea sunt stocate ca un singur tablou unidimensional cu un offset calculat. C este adesea folosit n programarea de nivel sc zut, unde poate fi necesar ca un ntreg s fie tratat ca o adres de memorie, un num r n virgul mobil ca un ntreg sau un tip de pointer ca un alt tip de pointer. Pentru astfel de cazuri C ofer operatorul de casting, care for eaz explicit conversia unei valori dintr-un tip de dat n alt tip de dat . [modificare]Alocarea memoriei Una din cele mai importante func ii ale unui limbaj de programare este ca acesta s furnizeze metode de management a memoriei i al obiectelor stocate n memorie. C furnizeaz trei metode distincte de alocare a memoriei pentru obiecte:


Alocarea static a memoriei: adresele i dimensiunile obiectelor ce fac uz de alocarea static a memoriei sunt fixate n momentul compil rii i pot fi plasate ntr-o zon de dimensiune fix ce corespunde unei sec iuni din cadrul fi ierului linkedidat final. Acest tip de alocare a memoriei se nume te static deoarece loca ia i dimensiunea lor nu variaz pe durata de execu ie a programului. Alocarea automat a memoriei: obiectele temporare (variabilele locale declarate n cadrul unui bloc de cod) sunt stocate n cadrul de stiv asociat func iei apelate, iar spa iul alocat este automat eiberat i reutilizat dup ce s-a p r sit blocul n care acestea au fost declarate. Alocarea dinamic a memoriei: blocuri de memorie de orice dimensiune pot fi alocate ntro zon de memorie numit heap prin intermediul func iilor malloc(), calloc() i realloc().

Aceste blocuri de memorie pot fi reutilizate dup ce zona de memorie a fost eliberat prin apelul func iei free(). Nu toate variabilele sunt automat alocate. Urm toarele tipuri de variabil sunt alocate static:
 

toate variabilele globale, indiferent dac au fost sau nu declarate ca statice; variabilele locale declarate explicit ca fiind statice.

Variabilele alocate static au alocat loca ia lor de memorie i ini ializat nainte ca func ia main s fie executat i nu sunt dealocate pn cnd se termin execu ia func iei main. Variabilele alocate static nu sunt reini ializate la fiecare apel al func iei n cadrul c rora au fost declarate. O variabil alocat static are avantajul c i p streaz valoarea, chiar dac func iile care acceseaz acea valoare nu mai sunt active. Acolo unde este posibil, alocarea automat sau static este preferat deoarece alocarea memoriei este coordonat de compilator, nemaifiind nevoie ca programatorul s aloce iar apoi s elibereze memoria - opera ie ce adesea genereaz erori. Totu i, multe structuri de date sunt variabile n dimensini i deoarece alocarea automat i cea static trebuie s fie de dimensiune fix n momentul compil rii, sunt multe situa ii n care alocarea dinamic trebuie folosit . Un exemplu ar fi tablourile de dimensiuni variabile. [modificare]Sintaxa Vezi i Sintaxa limbajului C

Spre deosebire de alte limbaje de programare cum ar fi Fortran 77, C-ul are o form liber , l snd programatorul s - i organizeze codul folosind spa iile albe. Comentarii pot fi nserate oriunde n cadrul programului utiliznd delimitatorii /* i */. Fiecare fi ier surs con ine declara ii de variabile i defini ii de func ii. Func iile, la rndul lor, con in alte declara ii de variabile i comenzi. Declara iile de variabile fie definesc noi tipuri folosind cuvinte cheie precum struct, union i enum sau atribuind un tip de date predefinite, prin scrierea tipului de dat i urmat de numele variabilei. Cuvinte cheie precum char, int, precum i pointerul la unul din aceste tipuri * reprezint tipuri de date implementate nativ n C. Sec iuni de cod sunt incluse ntre paranteze acolade ({ i }), pentru a indica pentru ce por iune a codului se aplic declara iile de variabile i celelalte structuri de control. Comenzile execut ac iuni cum ar fi cele de modificare ale valorii unei variabile sau afi area unui text la consol . Structurile de control sunt variabile pentru execu ii condi ionale sau itera ii, realizate cu ajutorul cuvintelor rezervate if, else, switch, do, while i for. Salturi arbitrare sunt posibile prin folosirea cuvntului cheie goto. Cu ajutorul unei variet i de operatori implementa i n C, se pot realiza opera ii aritmetice, logice, comparative, pe bi i, indexarea tablourilor i atribuiri. Comenzile pot de asemenea apela func ii, incluznd un num r mare de func ii din bibliotecile standard ale limbajului C, necesare pentru realizarea diferitelor sarcini cerute de programator. [modificare]Istoric

[modificare]nceputurile limbajului de programare C Etapa ini ial de dezvoltare a limbajului de programare C a avut loc n cadrul laboratoarelor AT&T Bell ntre anii 1969 i 1973. Dup spusele lui Dennis Ritchie, cea mai creativ perioad a avut loc n1972. A fost denumit C deoarece multe din caracteristicile sale au fost derivate din limbajul de programare B. Sunt multe legende despre originea limbajului C cum ar fi: i leg tura sa cu sistemul de operare Unix,

 Dezvoltarea limbajului C a fost rezultatul dorin ei programatorilor de a juca un joc de

tipul Asteroids. Ace tia l jucau pe calculatorul principal al companiei, dar din lipsa de resurse i datorit faptului c acesta trebuia s suporte mai mult de 100 de utilizatori, Thompson i Ritchie, nemul umi i de controlul pe care l aveau asupra navei n ncercarea de a evita asteroizii, au decis s porteze jocul pe un PDP-7, nefolosit, din birou. Dar aceast ma in nu avea un sistem de operare, a a c au hot rt s scrie unul. Au decis ca eventual s porteze acest sistem de operare pe ma inile PDP-11 pe care ace tia le foloseau n birou, dar era o munc destul de dificil avnd n vedere c totul era scris n limbaj de asamblare. A a c au decis s foloseasc un limbaj portabil de nivel nalt astfel nct sistemul de operare s poat fi portat cu u urin de pe un computer pe altul. Au ncercat folosind limbajul de programare B, dar i lipseau unele din func ionalit ile care ar fi f cut facil folosirea unor caracteristici avansate a ma inii PDP-11. Astfel, a ap rut un nou limbaj de programare, numit C.  Justificarea pentru ob inerea primului computer care a fost utilizat pentru dezvoltarea sistemului de operare Unix a fost acela de a crea un sistem pentru a automatiza completarea autoriza iilor. Prima versiune a sistemului de operare Unix a fost scris n limbaj de asamblare. Mai trziu, limbajul de programare C a fost folosit pentru a rescrie sitemul de operare. ncepnd cu anul 1973, limbajul de programare C a devenit destul de robust, astfel nct mare parte a kernelului Unix, scris ini ial n limbaj de asamblare pentru PDP 11/20, a fost rescris n C. Acesta a fost unul din primele kernele ale unui sistem de operare scris ntr-un limbaj de programare, altul dect limbajul de asamblare. ncerc ri anterioare au fost pentru scrierea sistemului Multics (scris n PL/I) i TRIPOS (scris n BCPL). [modificare]K&R C n 1978, Dennis Ritchie i Brian Kernighan au publicat prima edi ie a c r ii Limbajul de programare C (eng. The C Programming Language). Aceast carte, cunoscut n cercul programatorilor sub numele K&R, a servit pentru mul i ani ca un mijloc de informare asupra specifica iilor limbajului C. Versiunea limbajului C descris este cunoscut sub numele K&R C. K&R aduce n discu ie urm toarele caracteristici ale limbajului:
 Tipul de dat struct  Tipul de dat long int  Tipul de dat unsigned int

 Operatorul =+ a fost schimbat n +=, precum

i ceilal i operatori nrudi i (=+ producea confuzii analizorului lexical al compilatorului limbajului C; de exemplu: i += 10 comparat cu i = +10).

K&R C este adesea considerat limbajul de baz pe care orice compilator C trebuie s -l suporte. Pentru mul i ani, chiar i dup introducerea standardului ANSI C, a fost considerat ca fiind cel mai mic numitor comun pe care programatorii n C trebuie s -l respecte atunci cnd se vorbe te de portabiliitate maxim , deoarece nu toate compilatoarele sunt scrise nc s suporte standardul ANSI C, iar o secven de cod scris n K&R C respect i ANSI C. n primele versiuni C, numai func iile care returnau o valoare non-integer trebuiau s fie definite sau declarate nainte de folosire. Despre o func ie folosit f r ca aceasta s fi fost declarat n prealabil se presupunea c ntoarce un ntreg. Parametrii func iilor nu erau verifica i dup tip, totu i unele compilatoare afi au un mesaj de aten ionare dac o func ie era apelat cu un num r gre it de argumente. n anii ce au urmat publica iei K&C R, cteva caracteristici neoficiale au fost ad ugate limbajului C, fiind suportate de compilatoarele celor de la AT&T, precum i de al i produc tori. Acestea includ:
 func iile void

i tipul de date void *  func iile care ntorc tipul struct sau union  numele cmpurilor unei structuri struct ntr-un spa iu de nume pentru fiecare tip de structur  atribuirea pentru tipurile de date de tip struct  calificatorul const pentru a face un obiect de tip read only  o bibliotec standard ncorpornd func ii implementate de diver i dezvoltatori  enumera iile  tipul float n precizie simpl . [modificare]ANSI C i ISO C La sfr itul anilor 1970, C a nceput s nlocuiasc limbajul BASIC devenind cel mai utilizat limbaj de programare. n anii 1980 a fost adoptat i de calculatoarele IBM PC, popularitatea acestuia ncepnd s creasc semnificativ. n acest timp, Bjarne Stroustrup mpreun cu al i colegi de la Bell Labs au nceput s adauge limbajului C caracteristici ale program rii orientate pe obiecte. Limbajul rezultat a fost denumit C++ i este cel mai popular limbaj de programare pe sistemele de operare Microsoft Windows; totu i C-ul r mne cel mai popular limbaj de programare n Unix. Alt limbaj de programare dezvoltat n acea vreme se nume te Objective-C care adaug de asemenea C-ului caracteristici ale program rii orientate pe obiecte. De i nu la fel de popular ca C++, Obejective-C este folosit pentru dezvoltarea aplica iilor pe ce folosesc interfa a Cocoa a sistemului de operare Mac OS X. n 1983, American National Standards Institute (ANSI) a format un comitet, X3J11, pentru a stabili specifica iile unui limbaj C standard. Dup un proces ndelungat, standardul a fost terminat n 1989 i ratificat ca ANSI X3.159-1989 "Programming Language C". Aceast

versiune a limbajului ne este cunoscut sub numele ANSI C. n 1990, standardul ANSI C (cu mici modific ri) a fost adoptat de International Organization for Standardization (ISO) ca ISO/IEC 9899:1990. Una din intele procesului de standardizare ANSI C a fost acela de a produce un superset al K&C R, ncorpornd multe dintre caracteristicile neoficiale introduse secven ial. Totu i, comitetul pentru standardizare a introdus cteva caracteristici noi, cum ar fi prototipul func iilor (mprumutat din C++) i un preprocesor mult mai capabil. ANSI C este suportat de marea majoritate a compilatoarelor folosite ast zi. Mare parte din codul C scris acum este bazat pe ANSI C. Orice program scris exclusiv n standardul C este garantat s func ioneze corect pe orice platform cu o implementare C conform . Totu i, multe programe sunt scrise astfel nct aceste vor putea fi compilate numai pe anumite platforme, sau folosind un anumit compilator, deoarece (i) se folosesc biblioteci nonstandard, de exemplu pentru interfa a grafic , (ii) unele compilatoare ce nu respect standardul ANSI C, deci i urma ii lor n mod implicit sau (iii) bazarea pe dimensiunea unui anumit tip de date pe anumite platforme. [modificare]C99 Dup procesul de standardizare ANSI, specifica iile limbajului de programare C au r mas nemodificate pentru o perioad , n timp ce C++ a continuat s evolueze. (Amendamentul Normativ I a creat o nou versiune a limbajului C n 1995, dar aceast versiune este prea pu in cunoscut .) Totu i, la sfr itul anilor 1990, standardul a suferit o revizie, conducnd la publicarea standardului ISO 9899:1999n anul 1999. Acest standard este cunoscut sub numele C99. A fost adoptat ca standard ANSI n martie 2000. Noile aspecte ale limbajului C includ:
 func ii inline  variablele pot fi declarate oriunde n cadrul unui program (la fel ca 

   

i n C++) cteva noi tipuri de date, incluznd i long long int (pentru a reduce efortul legat de tranzi ia de la 32-bi i la 64-bi i), un tip explicit de date boolean i un tip complex de date reprezentnd numerele complexe tablourile de dimensiuni variabile suport pentru comentariile pe o singur linie, marcate la nceput de //, ca i n BCPL sau C++ i care au fost suportate de multe compilatoare ca o extensie a limbajului C noi func ii, cum ar fi snprintf() noi fi iere header, cum ar fi stdint.h

n ceea ce prive te interesul n adoptarea noului standard C99, dac GCC i alte compilatoare suport noile caracteristici C99, compilatoarele celor de la Microsoft i Borland nu suport C99 i cele dou companii nu par interesate n a oferi nici un fel de suport. [modificare]Diferen e ntre C, C++ i Pascal

[modificare]Compara ie cu limbajul Pascal

Sintaxa Pascal Sintaxa C

i C++ Explica ii

begin

nceput bloc de instruc iuni

end. / end

Sfr it bloc de instruc iuni

if (<cond>) then

if(<cond>)

Instruc iune condi ional : <cond> adevarat determin execu ia codului dup if (<cond>)

while(<cond>) while(<cond>) do

Repet cat timp <cond> adev rat

a<> b

a!=b

Valoarea variabilei a e diferit de valoarea variabilei b

Bucl (ciclu) for: se va repeta pn la verificarea for i:=1 to n do for(i=1;i<=n;i++) condi iei de ie ire din ciclu (valoarea variabilei i egale cu cea a lui n) i:=a; i=a; Atribuire: n loca ia de memorie corespunz toare variabilei i se copiaz valoarea din loca ia lui a Incrementare

i:=i+1

i++;

i:=i-1

i--;

Decrementare Declarare variabil (n C++ i C99 se poate declara oriunde n program/func ie) Dac a egal cu b

var i: integer

int i;

if(a=b) then

if(a==b)

read(var);

scanf("%s", &var); Citire de la intrarea standard (de obicei tastatur ) Scriere la ie irea standard (de obicei ecran)

write('text ',

printf("text %s",

var);

var);

writeln; [modificare]C

printf("\n"); i C++

Tip re te o linie nou

Limbajul de programare C++ a fost ini ial derivat din C. Totu i, nu absolut orice program scris n C este valid C++. Deoarece C i C++ au evoluat independent, au ap rut, din nefericire, o serie de incompatibilit i ntre cele dou limbaje de programare [1]. Cea mai ampl revizie a limbajui C, C99, a creat un num r suplimentar de conflicte. Diferen ele fac s fie greu de scris programe i biblioteci care s fie compilate i s ruleze corect n calitate de cod C sau C++, i produce confuzii celor care programeaz n ambele limbaje. Diferen ele fac ca fiecare din cele dou limbaje de programare s mprumute din caracteristicile celuilalt limbaj de programare. Bjarne Stroustrup, creatorul limbajului C++, a sugerat de nenum rate ori [2] s se reduc incompatibilit ile pe ct de mult posibil pentru a maximiza interoperabilitatea dintre cele dou limbaje de programare. Unii au argumentat c C i C++ sunt dou limbaje de programare distincte, compatibilitatea dintre ele fiind util dar nu vital ; potrivit acestei opinii, eforturile de a reduce incompatibilitatea nu trebuie s reduc eforturile de a aduce elemente noi n mod independent celor dou limbaje de programare. Cele mai importante diferen e sunt:
 inline func iile inline apar n sec iunea de declarare a variabilelor globale n C++, iar 

in C acestea apar n a a zisele fi iere statice. Cuvntul cheie bool are n C99 propriul s u header, <stdbool.h>. n variantele anterioare de C tipul de date boolean nu era definit, n schimb erau folosite o serie de metode (incompatibile) pentru a simula acest tip de date. Constantele caracter (cuprinse ntre apostrofuri) au dimensiunea unui int n C i char n C++. Cu alte cuvinte, n C, sizeof('a') == sizeof(int); n C++, sizeof('a') == sizeof(char). Chiar i n aceste condi ii, valoarea acestui tip de constante nu va dep i valoarea maxim ce poat fi p strat de char, deci o conversie de genul (char)'a' este sigur . Cuvinte cheie suplimentare au fost introduse n C++, deci acestea nu pot fi folosite ca identificatori a a cum ar putea fi folosite n C. (de exemplu, code>try, catch, template, new, delete, ...) n C++, compilatorul creeaz automat o etichet pentru orice structur (struct), uniune (union) sau enumera ie (enum), astfel nct struct S {}; n C++ este echivalent cu typedef struct S {} S; n C. i ce au ap rut ini ial n C++. Printre acestea se

C99 a adoptat unele func ionalit enumer :

 Declararea obligatorie a prototipului func iilor  Cuvntul cheie inline  Eliminarea variabilei implicite int ca valoare de ntoarcere.

S-ar putea să vă placă și