विषय पर बढ़ें

अंतिम अद्यतन:2026-10-12

C++ assert

लेखक के बारे में:

व्यक्तिगत WeChat सार्वजनिक अकाउंट:

wechat

1.पहला assert उदाहरण

assert एक मैक्रो है, फ़ंक्शन नहीं।

assert मैक्रो की प्रोटोटाइप परिभाषा (C), (C++) में होती है। इसका काम यह है कि अगर इसकी शर्त ग़लत लौटाए, तो प्रोग्राम का निष्पादन बंद कर दे।

NDEBUG परिभाषित करके assert को बंद किया जा सकता है, लेकिन इसे सोर्स कोड की शुरुआत में, को include करने से पहले परिभाषित करना होगा।

void assert(int expression);

कोड उदाहरण: assert.c

#include <stdio.h> 
#include <assert.h> 

int main() 
{ 
    int x = 7; 

    /*  Some big code in between and let's say x  
    is accidentally changed to 9  */
    x = 9; 

    // Programmer assumes x to be 7 in rest of the code 
    assert(x==7); 

    /* Rest of the code */

    return 0; 
} 
आउटपुट:
assert: assert.c:13: main: Assertion 'x==7' failed.
आप देख सकते हैं कि आउटपुट में सोर्स फ़ाइल और लाइन नंबर की ग़लती की जगह दिखाई देती है!

2.assert और सामान्य एरर हैंडलिंग

  • assert का मुख्य उपयोग लॉजिकल रूप से असंभव स्थितियों की जाँच के लिए होता है।

उदाहरण के लिए, इनका उपयोग कोड के चलने से पहले अपेक्षित स्थिति की जाँच के लिए, या चलने के बाद स्थिति की जाँच के लिए किया जा सकता है। सामान्य एरर हैंडलिंग के विपरीत, assert को आमतौर पर रनटाइम पर बंद (disable) रखा जाता है।

  • assert को अनदेखा करने के लिए, कोड की शुरुआत में जोड़ें:
    #define NDEBUG          // 加上这行,则 assert 不可用
    

नमूना कोड: ignore_assert.c

संबंधित विषय

टिप्पणियाँ