Sunteți pe pagina 1din 3

STILDEPROGRAMARE

Stiluldeprogramaresedefinestecaunsetdereguliutlizatinscriereacoduluisursapentru programedecalculator,avanddreptscopfacilitareacitiriisiintelegeriirapideaacestuiadecatretoti dezvoltatorii.Acestarticolseadreseazainprincipalcelorcarenusiaudefinitpanainacestmomentun stilbundeprogramare,dartotodatasiceiexperimentatiarputeagasicatevalucruriinteresantesi folositoare. InurmatoarelecatevarandurivorfiprezentateprincipaleleelementedestilpropusedeLinus Torvalds,creatorulkerneluluilinux,sitotodatacelcareconduceinprezentechipadedezvoltarea acestuia.

indentareaseutilizeazapentruadefiniinmodclarundeincepeunblocdecontrolsiunde seincheie pentru a realiza indentarea codului se recomanda folosirea taburilor si nu a spatiilor (marimearecomandatapentrutabeste4) puneticateunspatiudupafiecarevariabila,operator,paranteza.Codultrebuiesafiecatse poatedeAERISIT. Urmariticuatentieexemplul:

1. INDENTARESISPATIERE

intpower(inta,intb) { intc=1; while(b>0){ c=c*a; b=b1; } returnc; }

2.AMPLASAREAACOLADELOR

stilulrecomandatinaceastaprivintaesteamplasareaacoladeideschiseultima,peliniecu instructiuneacatrecarefacereferinta,iaracoladainchisavafiplasatapelinieseparatadupa cumseobservainexempluldemaijos.


if ( x is true ) { we do y }

Existasioexceptiedelaregulademaisusincazuldefiniriifunctiilor.Acoladadeschisava fiplasatalainceputullinieiurmatoareconformexempluluidemaijos.
int count( int x ) { body of function }

Atentie!Acoladainchisavafisingurapeliniecuexceptiacazurilorcandesteurmatade continuareaaceleiasideclaratii.Urmaritiexempluldemaijos!
do { body of do-loop } while (condition);

SAU
if (x == y) { .. } else if (x > y) { ... } else { .... }

3. STABILIREANUMELOR

4.FUNCTII

Un programator C nu va da nume frumoase variabilelor cum ar fi ThisVariableIsATemporaryCounter,ovadenumipursisimplutmp. Variabileleglobale(vorfifolositedoardacasuntabsolutnecesare)trebuiesaaibaunnume descriptiv,precumsifunctiileglobale.Deexemplu,dacaofunctienumarautilizatoriiactivi eavatrebuidenumitacount_active_users()siNUcntusr(). Numelevariabilelorlocaletrebuiesafiescurtsilaobiect.Deexempluuncontordecicluse vadenumisimpluisinuloop_counterpentrucaestefoarteneproductiv.

functiiletrebuiesafiescurtesisafacaunsingurlucru.Marimeauneifunctiinutrebuiesa depaseascaunulsaudouaecrane(ISO/ANSImarimeecran80x24). lungimea unei functii trebuie sa fie invers proportionala cu nivelul de indentare si complexitateaacesteia.AstfeldacaavemofunctiealcatuitadintrunCASEfoartemarein interiorulcaruiasefacoperatiisimpleatunciesteinregulasaavemofunctiemailunga. Unaltaspectcaretrebuieavutinvedereincazulfunctiilorestenumaruldevariabilelocale. Daca acesta este mai mare de 510 atunci functia in discutie trebuie reorganizata si impartitiainbucatimaimici.

5.COMENTARII Comentariile sunt un lucru bun, dar exista riscul unei supracomentari. Niciodata nu incercatisaexplicaticumfunctioneazacodul;dacacodulestescrisclaratunciacestlucurva fievident. In generalcomentariile descriu cefaceuncod,sinucum face acel lucru. Incercati de asemeneasaevitatiamplasareacomentariilorininteriorulfunctiilor.Dacafunctiaesteatat decomplexaincattrebuiesacomentatipartialeei,atuncimaicititidecatevaoripunctul4. In interiorul functiilor se pot face mici comentarii pentru a clarifica anumite lucruri speciale,dartotusinutrebuieexageratinaceastaprivinta.Puneticomentariilainceputul functiiloroferinddetaliicuprivirelacefacesidacaestecazuldecefaceacelelucruri.

Documentatiecompleta: http://lxr.linux.no/linux/Documentation/CodingStyle

VladBerteanu2008 ProgramareaCalculatoarelorseriaCC