Differences

This shows you the differences between two versions of the page.

Link to this comparison view

programare:tutoriale:read_docs [2022/01/21 02:04]
radu.nichita created
programare:tutoriale:read_docs [2022/01/24 16:38] (current)
stefan.popa99 [Dezavantaje]
Line 53: Line 53:
  
   * **bibliotecă** (EN: **library**):​ este o colecție de cod reutilizabil,​ ce implementează diferite funcționalități și care poate fi folosit de multiple aplicații.   * **bibliotecă** (EN: **library**):​ este o colecție de cod reutilizabil,​ ce implementează diferite funcționalități și care poate fi folosit de multiple aplicații.
-  * **framework**:​ este un software folosit ca schelet bază pentru dezvoltarea aplicațiilor sau a diverselor funcționalități. Un framework expune, în general, doar acele bucăți de cod (funcții, clase) de care este nevoie pentru a îl folosi. Restul funcționalității este, în general, ținută intern de framework.+  * **framework**:​ este un software folosit ca schelet ​de bază pentru dezvoltarea aplicațiilor sau a diverselor funcționalități. Un framework expune, în general, doar acele bucăți de cod (funcții, clase) de care este nevoie pentru a îl folosi. Restul funcționalității este, în general, ținută intern de framework.
   * **API** ([[https://​ro.wikipedia.org/​wiki/​Application_Programming_Interface|Application programming interface]]):​ Este interfața expusă de o bibliotecă/​un framework/o aplicație. Un API nu este cod propriu-zis,​ ci este interfața prin care putem folosi un cod (de exemplu, interfața unei biblioteci în C ar putea fi reprezentată de semnăturile funcțiilor conținute, strânse într-un header - aceasta explică ce funcții există în bibliotecă,​ ce valoare returnează,​ ce parametri primesc, ce face funcția).   * **API** ([[https://​ro.wikipedia.org/​wiki/​Application_Programming_Interface|Application programming interface]]):​ Este interfața expusă de o bibliotecă/​un framework/o aplicație. Un API nu este cod propriu-zis,​ ci este interfața prin care putem folosi un cod (de exemplu, interfața unei biblioteci în C ar putea fi reprezentată de semnăturile funcțiilor conținute, strânse într-un header - aceasta explică ce funcții există în bibliotecă,​ ce valoare returnează,​ ce parametri primesc, ce face funcția).
  
Line 65: Line 65:
       * Observație:​ cele 2 metode se aplică și comenzilor Linux - de exemplu, încercați să cautați cu ''​%%man ls%%''​ sau ''​%%man grep%%''​.       * Observație:​ cele 2 metode se aplică și comenzilor Linux - de exemplu, încercați să cautați cu ''​%%man ls%%''​ sau ''​%%man grep%%''​.
     * [[https://​docs.microsoft.com/​en-us/​cpp/​c-language/?​view=msvc-170|Windows]] - documentație oficială Microsoft pentru **Windows**;​     * [[https://​docs.microsoft.com/​en-us/​cpp/​c-language/?​view=msvc-170|Windows]] - documentație oficială Microsoft pentru **Windows**;​
-    * [[http://​www.open-std.org/​jtc1/​sc22/​wg14/​www/​docs/​n1256.pdf|ANSI C]] - o variantă free de documentație pentru ANSI C. Există și variantă non-free. ​9a6956437b897ff580a30bb2c9d7a5811c36479b+    * [[http://​www.open-std.org/​jtc1/​sc22/​wg14/​www/​docs/​n1256.pdf|ANSI C]] - o variantă free de documentație pentru ANSI C. Există și variantă non-free.
   * **C++**: La fel ca la C, nu există o documentație oficială pentru tot limbajul. Exemple de documentații:​   * **C++**: La fel ca la C, nu există o documentație oficială pentru tot limbajul. Exemple de documentații:​
     * [[https://​en.cppreference.com/​|C++ Reference]]     * [[https://​en.cppreference.com/​|C++ Reference]]
Line 286: Line 286:
 cel mai probabil veți primi [[https://​en.wikipedia.org/​wiki/​Segmentation_fault|Segmentation fault]]. cel mai probabil veți primi [[https://​en.wikipedia.org/​wiki/​Segmentation_fault|Segmentation fault]].
  
-Așadar, practic vorbind, cele 2 coduri se comportă diferit. Deși primul cod pare că merge în anumite cazuri, în realitate el va ascunde un memory leak care vă poate cauza comportament nedefinit (EN: [[https://​en.wikipedia.org/​wiki/​Undefined_behavior|undefined_behavior - UB]]). Să rulam cu valgrind acest program:+Așadar, practic vorbind, cele 2 coduri se comportă diferit. Deși primul cod pare că merge în anumite cazuri, în realitate el va ascunde un acces invalid la memorie pentru că se încearcă scrierea la o adresă de memorie nealocată. Să rulam cu valgrind acest program:
  
 <code cpp> <code cpp>
programare/tutoriale/read_docs.1642723442.txt.gz · Last modified: 2022/01/21 02:04 by radu.nichita
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0