()頭文件之assert函數

官方例子

/* assert example */
#include <stdio.h>      /* printf */
#include <assert.h>     /* assert */

void print_number(int* myInt) {
	
  assert (myInt!=NULL);
  printf ("%d\n",*myInt);
}

int main ()
{
  int a=10;
  int * b = NULL;
  int * c = NULL;

  b=&a;

  print_number (b);
  print_number (c);

  return 0;
}
當asset()函數括號裏的表達式爲假時,執行函數,顯示信息爲:

Assertion failed: expression, file filename, line line number 

例如在我的本地編譯器顯示信息爲:



修正之前的說法,以免誤導別人。

這個函數叫斷言函數,例如assert (myInt!=NULL);中就是斷言(認爲)myInt != NULL ,如果斷言不準確,即條件爲假,則會提示上圖紅框中的信息,並暫停在這一行,不執行後面的代碼。這是一種異常處理機制,在實際工程中應用特別廣泛,可以提高安全性:例如要保證某個條件成立時才執行某些行爲,可以在要執行的行爲前加入斷言函數,以保證安全性。

當然這在調試過程中也是很有用的。

發佈了32 篇原創文章 · 獲贊 55 · 訪問量 64萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章