C語言中assert用法
assert宏的原型定義在中,其作用是如果它的條件返回錯誤,則終止程序執行,下面就有小編分享C語言鏈接庫的用法,歡迎大家學習!
原型定義:
#include
void assert( int expression );
assert的作用是現計算表達式 expression ,如果其值為假(即為0),那麼它先向stderr打印一條出錯信息,
然後通過調用 abort 來終止程序運行。
請看下面的程序清單badptr.c:
複製代碼 代碼如下:
#include
#include
#include
int main( void )
{
FILE *fp;
fp = fopen( "", "w" );//以可寫的方式打開一個文件,如果不存在就創建一個同名文件
assert( fp ); //所以這裏不會出錯
fclose( fp );
fp = fopen( "", "r" );//以只讀的'方式打開一個文件,如果不存在就打開文件失敗
assert( fp ); //所以這裏出錯
fclose( fp ); //程序永遠都執行不到這裏來
return 0;
}
宏名: assert
功 能: 測試一個條件並可能使程序終止
用 法: void assert(int test);
程序例:
複製代碼 代碼如下:
#include
#include
#include
struct ITEM {
int key;
int value;
};
/* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
assert(itemptr != NULL);
/* add item to list */
}
int main(void)
{
additem(NULL);
return 0;
}
assert() 宏用法
注意:assert是宏,而不是函數。在C的assert.h頭文件中。
assert宏的原型定義在中,其作用是如果它的條件返回錯誤,則終止程序執行,原型定義:
複製代碼 代碼如下:
#include
void assert( int expression );
assert的作用是先計算表達式expression,如果其值為假(即為0),那麼它先向標準錯誤流stderr打印一條出錯信息,然後通過調用abort來終止程序運行;否則,assert()無任何作用。宏assert()一般用於確認程序的正常操作,其中表達式構造無錯時才為真值。完成調試後,不必從源代碼中刪除assert()語句,因為宏NDEBUG有定義時,宏assert()的定義為空。
-
C語言指針知識點
引導語:在信息工程中,指針是一個用來指示一個內存地址的計算機語言的變量或中央處理器(CPU)中的寄存器(Register)。以下是本站小編分享給大家的C語言指針知識點,歡迎閲讀!【考點1】指針變量指針變量是用來存儲地址的,而一般變量是存儲數值的。指針變量可指向任意一...
-
計算機等級考試二級C語言筆試精選習題
應屆畢業生考試網提供了計算機等級考試二級C語言筆試精選習題,幫助考生鍛鍊解題思路,加深理解知識點。更多資料訪問yjbys計算機等級考試網。1、C語言程序的基本單位是____A)程序行B)語句C)函數D)字符、C、12、C語言程序的三種基本結構是____A、順序結構,選擇結構,...
-
嵌入式C語言編程小知識
嵌入式系統是用來控制或者監視機器、裝置、工廠等大規模設備的系統。下面為大家整理了一些嵌入式C語言編程小知識,一起來看看吧!1.流水線被指令填滿時才能發揮最大效能即每時鐘週期完成一條指令的執行(僅指單週期指令)。如果程序發生跳轉,流水線會被清空,這將需要...
-
C語言插入排序算法及實例代碼
插入排序是排序算法的一種,下面小編為大家整理了C語言插入排序算法及實例代碼,希望能幫到大家!這裏以從小到大排序為例進行講解。基本思想及舉例説明插入排序的基本思想是,將元素逐個添加到已經排序好的數組中去,同時要求,插入的元素必須在正確的位置,這樣原來排序好...