इस कोड पर एक नज़र डालें:खाली "रिलीज" एएसएसईआरटी मैक्रो क्रैश प्रोग्राम?
#include <cassert>
#ifdef DEBUG
#define ASSERT(expr) assert(expr)
#else
#define ASSERT(expr)
#endif /* DEBUG */
कार्यक्रम केवल अगर मैं DEBUG
परिभाषित किया गया है चलेंगे, अन्यथा यह लटका और बिना किसी परिणाम के समाप्त कर देगा। मैं ग्रहण इंडिगो सीडीटी में मिनजीडब्ल्यू का उपयोग कर रहा हूं। सलाह की सराहना की जाती है!
यह शायद दूसरा सबसे है डीबग और रिलीज बिल्ड के बीच अंतर के लिए सामान्य कारण (अनुकूलन के बाद)। –
उत्तर देने के लिए धन्यवाद, सिर्फ एक प्रश्न। गैर-डीबग के लिए केवल '# एस्सेर (एक्सप्रप्रो) (एक्सप्रप्रो)' (जैसा कि केरेक एसबी ने उल्लेख किया था) को परिभाषित करना अच्छा अभ्यास होगा, और वहां से साइड इफेक्ट्स के बारे में चिंता न करें? मुझे एहसास है कि यह मेरे कोड को और अधिक पठनीय बना देगा। – AutoBotAM
@AutoBotam: यदि आप इसके बजाय 'एसेट' 'VERIFY 'कहते हैं, तो सुनिश्चित करें, आगे बढ़ें। लेकिन 'एएसएसईआरटी' को फिर से परिभाषित न करें, लोग जानते हैं और उम्मीद करते हैं कि यह 'एनडीईबीयूजी' बिल्ड पर अभिव्यक्ति का मूल्यांकन न करे। –