国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

淺析C語言中assert的用法

2020-01-26 16:00:28
字體:
來源:轉載
供稿:網友

assert宏的原型定義在<assert.h>中,其作用是如果它的條件返回錯誤,則終止程序執行,原型定義:
#include <assert.h>
void assert( int expression );
assert的作用是現計算表達式 expression ,如果其值為假(即為0),那么它先向stderr打印一條出錯信息,
然后通過調用 abort 來終止程序運行。
請看下面的程序清單badptr.c:

復制代碼 代碼如下:

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
int main( void )
{
       FILE *fp;

       fp = fopen( "test.txt", "w" );//以可寫的方式打開一個文件,如果不存在就創建一個同名文件
       assert( fp );                           //所以這里不會出錯
       fclose( fp );

       fp = fopen( "noexitfile.txt", "r" );//以只讀的方式打開一個文件,如果不存在就打開文件失敗
       assert( fp );                           //所以這里出錯
       fclose( fp );                           //程序永遠都執行不到這里來
       return 0;
}

宏名: assert
功 能: 測試一個條件并可能使程序終止
用 法: void assert(int test);
程序例:
復制代碼 代碼如下:

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
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宏的原型定義在<assert.h>中,其作用是如果它的條件返回錯誤,則終止程序執行,原型定義:
復制代碼 代碼如下:

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

assert的作用是先計算表達式expression,如果其值為假(即為0),那么它先向標準錯誤流stderr打印一條出錯信息,然后通過調用abort來終止程序運行;否則,assert()無任何作用。宏assert()一般用于確認程序的正常操作,其中表達式構造無錯時才為真值。完成調試后,不必從源代碼中刪除assert()語句,因為宏NDEBUG有定義時,宏assert()的定義為空。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 常宁市| 宁化县| 齐河县| 石林| 大洼县| 通辽市| 临沂市| 托里县| 瑞金市| 西乡县| 慈利县| 遵义市| 惠东县| 安宁市| 噶尔县| 五华县| 报价| 会昌县| 高尔夫| 五指山市| 舟曲县| 大新县| 永济市| 大埔县| 营山县| 阿坝| 湖州市| 清流县| 姜堰市| 上杭县| 永泰县| 达拉特旗| 永州市| 普洱| 大悟县| 普陀区| 象州县| 小金县| 巴青县| 工布江达县| 沙坪坝区|