C (programlingvo): Malsamoj inter versioj

Neniu ŝanĝo en grandeco ,  antaŭ 3 jaroj
[kontrolita revizio][kontrolita revizio]
e (kategorio)
* fokuso al ordonema programado, kun iloj por programi laŭ struktura stilo;
* aliro al malaltnivelaj propraĵoj de la maŝino, ekz. la uzo de [[referenco]]j por montri al lokoj en memoro;
* transdonado de parametro al funkcioj ĉiam kielper valoro, ne kielper referenco;
* leksika amplekso[[videblejo]] de variabloj (sed neniu subteno por fermojkaŝado aŭ funkcioj difinitaj ene de funkcioj);
* norma aro deda bibliotekaj subprogramoj, kiuj donas ilojn utilajn, sed ne strikte necesajn;
* uzo de la [[C-antaŭtraktilo]] [[CPP (antaŭtraktilo)|CPP]] por taskoj kielkiaj difini makroojn kaj heredi plurajnimporti dosierojn deda fontkodo.
 
Ne ĉiuj el tiuj ecoj estas garantiitaj de la diversaj C-normoj. Ekzemple, la C-antaŭtraktilo CPP estas ĝenerale aparta programo, kio permesas, ke dosieroj antaŭtraktiĝu, sen tio ke ili devas estiestu plene tradukitaj. Tamen, la plejparto deda realigoj de C havas ĉi tiujn ecojn, kaj la komunumo de C-programistoj atendas, ke ili ĉeestu.
 
Kvankam C estas meznivela programlingvo, ĝi dividashavas similaĵojn kun [[asembla programlingvo]] kaj estas malpli altnivela ol multaj aliaj programlingvoj. Plej elstare, la programisto devas prizorgi la enhavojn de memoro: defaŭlte, C donas neniujn ilojn por kontroli la limojn de tabeloj kaj por aŭtomata [[senrubigilo|senrubigo]]. Libera prizorgado de memoro donas al la programisto pli da libereco por ĝustigi la kvalitojn de programo, kio estas aparte grava por programoj kiel peliloj. Tamen, tio ankaŭ faciligas la aperon de cimoj fontantaj en eraraj operacioj pri memoro, ekz. bufraj trofluojtrooj (transbordiĝoj). Oni jam verkis ilojn por eviti ĉi tiajn erarojn, i. a. bibliotekojn por kontroli la limojn de tabeloj kaj por rubkolektosenrubigo kaj la programon ''lint'' por kontroli fontan kodon.
 
KelkajKelkajn el la "«mankoj"» de C jam estas prizorgitaj deprizorgas pli novaj programlingvoj, kiuj heredasdevenantaj de C. La programlingvo [[Cyclone (programlingvo)|Cyclone]] havas ilojn por gardi kontraŭ eraraj uzoj de memoro. C++ kaj [[Objective C]] donas ilojn celitajn por helpi objekteman programadon. Java kaj [[C dieso (programlingvo)|C#]] aldonas objektemajn ilojn kaj ankaŭ pli altan nivelon de abstrakteco, ekz. per aŭtomata prizorgado de memoromemoradministrado.
 
== Historio ==