偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

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

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

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

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

【編輯推薦】

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

2022-07-18 15:32:37

C++虛函數(shù)表

2010-01-27 13:38:29

C++ Sum函數(shù)

2010-02-02 17:33:17

C++友元函數(shù)

2010-01-21 11:23:58

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

2010-01-26 17:16:33

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

2010-02-06 17:39:52

C++ strtok

2010-02-05 16:46:58

C++ TinyXml

2010-02-04 13:45:36

C++類(lèi)模板

2010-01-20 14:25:56

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

2010-02-02 10:07:59

C++全局函數(shù)

2010-01-14 17:42:47

CC++

2010-02-03 10:11:17

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

2010-02-03 15:27:26

C++ static

2010-02-04 13:39:44

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

2010-02-04 14:29:45

C++ typenam

2010-02-06 16:21:35

C++常規(guī)DLL

2010-01-28 16:31:54

C++類(lèi)型

2010-02-02 17:39:31

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

2010-02-04 16:39:26

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

2010-02-05 14:36:20

C++智能指針
點(diǎn)贊
收藏

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