Titlul: Macrouri Scris de: Stratulat Alexandru din 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 Titlul: Răspuns: Macrouri Scris de: George Popoiu din 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. |