C assert 之函式應用方式剖析

2022-04-07 06:37:02 字數 701 閱讀 3825

作為乙個經驗豐富的程式設計人員來說,對於c++程式語言應該不會陌生的,它的應用可以幫助我們輕鬆的實現各種功能需求。在這裡我們會對c++ assert()函式的一些基本應用做乙個詳細介紹。

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

#include < assert.h>   void assert( int expression );  c++ assert()函式的作用是現計算表示式 expression ,如果其值為假(即為0),那麼它先向stderr列印一條出錯資訊,然後通過呼叫 abort 來終止程式執行。請看下面的程式清單badptr.c:

#include < stdio.h>   #include < assert.h>   #include < stdlib.h>   int main( void )      [root@localhost error_process]# gcc badptr.c   [root@localhost error_process]# ./a.out   a.out: badptr.c:14: main: assertion `fp' failed.  已放棄

使用c++ assert()函式的缺點是,頻繁的呼叫會極大的影響程式的效能,增加額外的開銷。在除錯結束後,可以通過在包含#include < assert.h>的語句之前插入 #define ndebug 來禁用assert呼叫,示例**如下:

shell入門之函式應用

先來看乙個簡單的求和函式 bin bash a test about function f sum 7 8function f sum f sum 3 5 total f sum 3 6 echo total,注意幾個問題 1.shell是逐行執行,所以要在函式宣告之後才可呼叫,否則會有錯誤 2.我...

SAS學習筆記之函式應用

今天在做資料需求的時候遇到一些問題,因為不能夠在資料庫裡面做,僅僅好在sas裡面實現。這就遇到了一些麻煩,須要使用一些函式實現部分功能,如查詢欄位中某個特殊字元出現的次數,查詢某個字元的位置等,以下一一枚舉出來 count data step 在data step裡面count能夠實現計數功能,就是...

Linux應用開發之訊號集函式

訊號是程序間通訊的一種重要的方法,可以通過命令ls l 來檢視系統都有哪些訊號。下面是一些訊號處理函式 int sigemptyset sigset t set 判斷定義的訊號是否為空 int sigfillset sigset t set set指向的訊號集中將包含linux支援的訊號 int s...