Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Macrouri  (Citit de 1204 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Fayed
Client obisnuit
**

Karma: -24
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« : Aprilie 11, 2014, 17:48:47 »

Poate sa imi spuna cineva ce face urmatoarea secventa de cod si mai ales partea cu "#define new DEBUG_NEW". Imi aloca o constanta dinamica care va fi preprocesata ?

#ifdef _DEBUG
#define new DEBUG_NEW
#endif
Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #1 : Aprilie 11, 2014, 22:20:54 »

Citat
Imi aloca o constanta dinamica care va fi preprocesata ?

Nu prea inteleg ce ai vrut sa zici. E destul de straightfoward..

Daca este definita constanta _DEBUG atunci se defineste new ca si DEBUG_NEW.
Asta inseamna ca oriunde folosesti in program operatorul new pentru a aloca memorie in mod dinamic (pe heap) se va inlocui la faza de preprocesare cu DEBUG_NEW, deci :

Cod:
int* v = new int[100];

devine dupa preprocesare

Cod:
int* v = DEBUG_NEW int[100];

DEBUG_NEW face acelasi lucru ca si new doar ca se pastreaza si niste loguri referitoare la ce moment in program s-a alocat o anumita zona de memorie care pot fi utile la debugging.

http://msdn.microsoft.com/en-us/library/tz7sxz99.aspx

Poti sa elimini liniile astea si nu o sa ai nici o problema, poate niste warning-uri.

LE : Constanta _DEBUG cred ca e definita tot timpul, mai putin atunci cand faci un build in modul release.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines