中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++ 中assert()函數如何使用

發布時間:2021-07-14 15:03:03 來源:億速云 閱讀:150 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關C++ 中assert()函數如何使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

assert宏的原型定義在< assert.h>中,其作用是如果它的條件返回錯誤,則終止程序執行,原型定義:

#include < assert.h>   void assert( int expression );

C++ assert()函數的作用是現計算表達式 expression ,如果其值為假(即為0),那么它先向stderr打印一條出錯信息,然后通過調用 abort 來終止程序運行。請看下面的程序清單badptr.c:

  1. #include < stdio.h>   

  2. #include < assert.h>   

  3. #include < stdlib.h>   

  4. int main( void )   

  5. {   

  6. FILE *fp;   

  7. fp = fopen( "test.txt", "w" );
    //以可寫的方式打開一個文件,如果不存在就創建一個同名文件   

  8. assert( fp ); //所以這里不會出錯   

  9. fclose( fp );   

  10. fp = fopen( "noexitfile.txt", "r" );
    //以只讀的方式打開一個文件,如果不存在就打開文件失敗   

  11. assert( fp ); //所以這里出錯   

  12. fclose( fp ); //程序永遠都執行不到這里來   

  13. return 0;   

  14. }   

  15. [root@localhost error_process]# gcc badptr.c   

  16. [root@localhost error_process]# ./a.out   

  17. a.out: badptr.c:14: main: Assertion `fp' failed.  

已放棄

使用C++ assert()函數的缺點是,頻繁的調用會極大的影響程序的性能,增加額外的開銷。 在調試結束后,可以通過在包含#include < assert.h>的語句之前插入 #define NDEBUG 來禁用assert調用,示例代碼如下:

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

上述就是小編為大家分享的C++ 中assert()函數如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

库伦旗| 彰武县| 诸暨市| 财经| 南投县| 黄陵县| 岗巴县| 庆云县| 温州市| 二连浩特市| 桑日县| 新巴尔虎右旗| 高淳县| 万宁市| 南郑县| 金秀| 博兴县| 海盐县| 泰来县| 津南区| 肇源县| 宜兰市| 金昌市| 睢宁县| 沙河市| 隆昌县| 文成县| 台东市| 郸城县| 诸暨市| 策勒县| 光山县| 长阳| 蓝山县| 东丽区| 武定县| 马鞍山市| 吴忠市| 合肥市| 内江市| 乌什县|