新聞中心
作為一個(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ì)介紹。

成都創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺(jué)設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、營(yíng)銷網(wǎng)站、網(wǎng)站程序開(kāi)發(fā)、HTML5響應(yīng)式重慶網(wǎng)站建設(shè)公司、移動(dòng)網(wǎng)站建設(shè)、微商城、網(wǎng)站托管及成都企業(yè)網(wǎng)站維護(hù)、WEB系統(tǒng)開(kāi)發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都OPP膠袋行業(yè)客戶提供了網(wǎng)站開(kāi)發(fā)服務(wù)。
assert宏的原型定義在< assert.h>中,其作用是如果它的條件返回錯(cuò)誤,則終止程序執(zhí)行,原型定義:
- #include < assert.h>
- 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:
- #include < stdio.h>
- #include < assert.h>
- #include < stdlib.h>
- int main( void )
- {
- FILE *fp;
- fp = fopen( "test.txt", "w" );
//以可寫(xiě)的方式打開(kāi)一個(gè)文件,如果不存在就創(chuàng)建一個(gè)同名文件- assert( fp ); //所以這里不會(huì)出錯(cuò)
- fclose( fp );
- fp = fopen( "noexitfile.txt", "r" );
//以只讀的方式打開(kāi)一個(gè)文件,如果不存在就打開(kāi)文件失敗- assert( fp ); //所以這里出錯(cuò)
- fclose( fp ); //程序永遠(yuǎn)都執(zhí)行不到這里來(lái)
- return 0;
- }
- [root@localhost error_process]# gcc badptr.c
- [root@localhost error_process]# ./a.out
- a.out: badptr.c:14: main: Assertion `fp' failed.
已放棄
使用C++ assert()函數(shù)的缺點(diǎn)是,頻繁的調(diào)用會(huì)極大的影響程序的性能,增加額外的開(kāi)銷。 在調(diào)試結(jié)束后,可以通過(guò)在包含#include < assert.h>的語(yǔ)句之前插入 #define NDEBUG 來(lái)禁用assert調(diào)用,示例代碼如下:
- #include < stdio.h>
- #define NDEBUG
- #include < assert.h>
以上就是對(duì)C++ assert()函數(shù)的相關(guān)介紹。
【編輯推薦】
- C++ Memento模式應(yīng)用法則
- C++內(nèi)存對(duì)齊詳細(xì)使用指南
- C++常規(guī)DLL應(yīng)用方式介紹
- C++冒泡排序基本應(yīng)用技巧分享
- C++ Vector用法深入剖析
分享名稱:C++ assert()函數(shù)應(yīng)用方式剖析
文章起源:http://www.dlmjj.cn/article/cojoigc.html


咨詢
建站咨詢
