Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Pointerii nu sint de tip int

c



+ Font mai mare | - Font mai mic



Pointerii nu sint de tip int

S-a putut observa ca programele C mai vechi au o atitudine mai

toleranta fata de copierea pointerilor. In general a fost adevarat



ca pe majoritatea masinilor un pointer poate fi asignat unui

intreg si invers, fara a-l schimba; nu are loc nici o scalare

sau conversie si nu se pierd biti. In mod regretabil aceasta

stare de lucruri a condus la asumarea unor libertati nepermise

desi partea programatorului in lucru cu rutina ce returneaza

pointeri ce sint transmisi apoi pur si simplu altor rutine -

necesitatea declararii pointerului fiind adesea omisa. De exemplu,

sa luam o functie strsave care copiaza sirul s undeva, intr-o

zona obtinuta printr-un apel la alloc, returnind apoi un pointer

pe ea. Strsave se poate scrie astfel

char *strsave(s) /* salveaza undeva sirul s */

char *s;

In practica, exista o tendinta puternica de a omite declararile:

strsave(s * salveaza undeva sirul s */

Acest cod s-ar putea sa mearga pe multe masini deoarece tipul

implicit al functiilor si al argumentelor este int iar atit int-ul

cit si pointerul pot fi asignati la inceput cit si la sfirsit. Cu

toate acestea, acest gen de cod este inerent riscant deoarece el

depinde de detalii de implementare si de arhitectura masinii, care

nu pot fi rezolvate pentru compilatorul particular utilizat de

dvs. Este recomandabil sa se efectueze toate declararile necesare.

(Programul lint va avertiza in legatura cu astfel de restrictii

in cazul in care se vor strecura inadvertente).



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1080
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved