This shows you the differences between two versions of the page.
|
programare:tutoriale:good_practices [2022/01/24 16:25] stefan.popa99 [Modularizare cod] |
programare:tutoriale:good_practices [2025/11/04 15:37] (current) cpatrascu1910 [Good practices] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Good practices ====== | ====== Good practices ====== | ||
| - | + | {{:pa:new_pa:partners:bitdefender_masterbrand_logo_positive.png?190 |}} | |
| - | <note> | + | Bitdefender este un lider recunoscut în domeniul securității IT, care oferă soluții superioare de prevenție, detecție și răspuns la incidente de securitate cibernetică. Milioane de sisteme folosite de oameni, companii și instituții guvernamentale sunt protejate de soluțiile companiei, ceea ce face Bitdefender unul dintre cei mai de încredere experți în combaterea amenințărilor informatice, în protejarea intimității și datelor, a identității digitale și în consolidarea rezilienței la atacuri. Compania a inovat constant în domenii precum antimalware, Internetul Lucrurilor, analiză comportamentală și inteligență artificială, iar tehnologiile Bitdefender sunt licențiate către peste 180 dintre cele mai cunoscute branduri de securitate din lume. |
| - | {{:programare:partners:logo:logo-bitdefender.png?200 |}} | + | |
| - | Bitdefender este un lider recunoscut în domeniul securității IT, care oferă soluții superioare de prevenție, detecție și răspuns la incidente de securitate cibernetică. Milioane de sisteme folosite de oameni, companii și instituții guvernamentale sunt protejate de soluțiile companiei, ceea ce face Bitdefender cel mai de încredere expert în combaterea amenințărilor informatice, în protejarea intimității și datelor și în consolidarea rezilienței la atacuri. Ca urmare a investițiilor susținute în cercetare și dezvoltare, laboratoarele Bitdefender descoperă 400 de noi amenințări informatice în fiecare minut și validează zilnic 30 de miliarde de interogări privind amenințările. Compania a inovat constant în domenii precum antimalware, Internetul Lucrurilor, analiză comportamentală și inteligență artificială, iar tehnologiile Bitdefender sunt licențiate către peste 150 dintre cele mai cunoscute branduri de securitate din lume. Fondată în 2001, compania Bitdefender are clienți în 170 de țări și birouri pe toate continentele. Mai multe detalii sunt disponibile pe www.bitdefender.ro. | + | |
| - | </note> | + | |
| **Resposabili**: | **Resposabili**: | ||
| Line 353: | Line 350: | ||
| { | { | ||
| if (file_name == NULL) { | if (file_name == NULL) { | ||
| - | return FILE_SUCCESS; | + | return FILE_NULL_FILENAME; |
| } | } | ||
| Line 474: | Line 471: | ||
| * un mecanism de interschimbare a două valori de orice tip; | * un mecanism de interschimbare a două valori de orice tip; | ||
| - | Pentru a interschimba două valori de orice tip, ar trebui să ne gândim ce înseamnă a interschimba un element ''%%v[i]%%'' cu un alt element ''%%v[j]%%''? Cum v este de tipul ''%%void*%%'', nu este permis să folosim ''%%v[i]%%'',deoarece printr-un pointer ''%%void*%%'' nu știm ce elemente avem. Însă, cunoaștem dimensiunea unui ''%%singur%%'' element din vector - ''%%elem_size%%'', putem determina adresa de început al celui de-al i-lea element din vector, care va fi la ''%%v + i * elem_size%%'' . Pentru a interschimba valorile, vom copia cu funcția ''%%memcpy%%'' un număr de''%%elem_size%%'' bytes de la adresa determinată pentru elementul ''%%i%%'' într-un buffer temporar (similar cu ''%%temp = v[i];%%''), apoi copiem de la adresa corespunzătoare lui ''%%j%%'' la cea a lui ''%%i%%'' (similar cu ''%%v[i] = v[j];%%'', apoi din bufferul temporar la adresa corespunzătoare lui j (similar cu ''%%v[j] = tmp;%%''). | + | Pentru a interschimba două valori de orice tip, ar trebui să ne gândim ce înseamnă a interschimba un element ''%%v[i]%%'' cu un alt element ''%%v[j]%%''? Cum v este de tipul ''%%void*%%'', nu este permis să folosim ''%%v[i]%%'',deoarece printr-un pointer ''%%void*%%'' nu știm ce elemente avem. Însă, cunoaștem dimensiunea unui ''%%singur%%'' element din vector - ''%%elem_size%%'', putem determina adresa de început al celui de-al i-lea element din vector, care va fi la ''%%v + i * elem_size%%'' . Pentru a interschimba valorile, vom copia cu funcția ''%%memcpy%%'' un număr de ''%%elem_size%%'' bytes de la adresa determinată pentru elementul ''%%i%%'' într-un buffer temporar (similar cu ''%%temp = v[i];%%''), apoi copiem de la adresa corespunzătoare lui ''%%j%%'' la cea a lui ''%%i%%'' (similar cu ''%%v[i] = v[j];%%'', apoi din bufferul temporar la adresa corespunzătoare lui j (similar cu ''%%v[j] = tmp;%%''). |
| O posibilă implementare a funcției este următoarea: | O posibilă implementare a funcției este următoarea: | ||