C言語assertの使い方


assertマクロのプロトタイプ定義はでは、その条件がエラーを返すとプログラム実行を終了し、プロトタイプ定義:#includevoid assert( int expression );
assertの役割は、計算式expressionであり、値が偽(すなわち0)の場合、stderrにエラー情報を印刷し、abortを呼び出してプログラムの実行を終了することです.
次のプログラムリストを見てください.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マクロのプロトタイプ定義はでは、条件がエラーを返すと、プログラムの実行が終了し、プロトタイプ定義が次のように機能します.
#include <assert.h>
void assert( int expression );

assertの役割は、式expressionを先に計算し、値が偽(すなわち0)の場合、標準エラーストリームstderrにエラー情報を印刷し、abortを呼び出してプログラムの実行を終了することです.そうしないと、assert()は何の役割もありません.マクロassert()は、通常、プログラムの正常な動作を確認するために使用されます.式の構成が間違っていない場合にのみ真の値になります.デバッグが完了すると、マクロNDEBUGに定義がある場合、マクロassert()の定義が空になるため、ソースコードからassert()文を削除する必要はありません.