自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++ assert()函數(shù)應(yīng)用方式剖析

開發(fā) 后端
C++ assert()函數(shù)的應(yīng)用方式將會在這篇文章中進(jìn)行詳解,相信對此有興趣的朋友們應(yīng)該可以根據(jù)我們介紹的內(nèi)容充分掌握這方面的應(yīng)用技巧。

作為一個經(jīng)驗(yàn)豐富的編程人員來說,對于C++編程語言應(yīng)該不會陌生的,它的應(yīng)用可以幫助我們輕松的實(shí)現(xiàn)各種功能需求。在這里我們會對C++ assert()函數(shù)的一些基本應(yīng)用做一個詳細(xì)介紹。

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

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

C++ assert()函數(shù)的作用是現(xiàn)計(jì)算表達(dá)式 expression ,如果其值為假(即為0),那么它先向stderr打印一條出錯信息,然后通過調(diào)用 abort 來終止程序運(yùn)行。請看下面的程序清單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" );
    //以可寫的方式打開一個文件,如果不存在就創(chuàng)建一個同名文件   
  8. assert( fp ); //所以這里不會出錯   
  9. fclose( fp );   
  10. fp = fopen( "noexitfile.txt", "r" );
    //以只讀的方式打開一個文件,如果不存在就打開文件失敗   
  11. assert( fp ); //所以這里出錯   
  12. fclose( fp ); //程序永遠(yuǎn)都執(zhí)行不到這里來   
  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()函數(shù)的缺點(diǎn)是,頻繁的調(diào)用會極大的影響程序的性能,增加額外的開銷。 在調(diào)試結(jié)束后,可以通過在包含#include < assert.h>的語句之前插入 #define NDEBUG 來禁用assert調(diào)用,示例代碼如下:

  1. #include < stdio.h>   
  2. #define NDEBUG   
  3. #include < assert.h> 

以上就是對C++ assert()函數(shù)的相關(guān)介紹。

【編輯推薦】

  1. C++ Memento模式應(yīng)用法則
  2. C++內(nèi)存對齊詳細(xì)使用指南
  3. C++常規(guī)DLL應(yīng)用方式介紹
  4. C++冒泡排序基本應(yīng)用技巧分享
  5. C++ Vector用法深入剖析
責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2022-07-18 15:32:37

C++虛函數(shù)表

2010-01-27 13:38:29

C++ Sum函數(shù)

2010-01-21 11:23:58

C++函數(shù)調(diào)用

2010-02-02 17:33:17

C++友元函數(shù)

2010-01-26 17:16:33

C++應(yīng)用程序

2010-02-05 16:46:58

C++ TinyXml

2010-02-06 17:39:52

C++ strtok

2010-02-04 13:45:36

C++類模板

2010-01-20 14:25:56

函數(shù)調(diào)用

2010-01-14 17:42:47

CC++

2010-02-04 13:39:44

C++數(shù)組參數(shù)

2010-02-06 16:21:35

C++常規(guī)DLL

2010-02-04 14:29:45

C++ typenam

2010-02-03 15:27:26

C++ static

2010-02-02 10:07:59

C++全局函數(shù)

2010-02-03 10:11:17

C++動態(tài)數(shù)組

2010-01-28 16:31:54

C++類型

2010-02-02 17:39:31

C++構(gòu)造函數(shù)

2010-02-04 16:39:26

C++析構(gòu)函數(shù)

2010-02-04 11:15:28

C++模板限制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號