C言語の中のクラスメイトの使い方を分析します。


astertマクロのプロトタイプはに定義されています。その役割は、その条件が間違っている場合は、プログラム実行を終了し、プロトタイプ定義:{include<astert.h>void astert(int exprestion);astertの役割は、現在の計算式expressionであり、もしその値が偽(すなわち0)であれば、先にstderにエラー情報を印刷し、aboortを呼び出してプログラムの実行を終了する。下記のプログラムリスト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;
}
マクロ名:astert機能:条件をテストして、プログラムを終了させる可能性があります。プログラム例:

#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;
}
astert()マクロの使い方注意:astertはマクロで、関数ではありません。Cのクラスメイト.hヘッダファイルにあります。astertマクロのプロトタイプ定義はにおいて、その条件が間違っている場合は、プログラム実行を終了します。プロトタイプ定義:

#include <assert.h>
void assert( int expression );
astertの役割は、先に式expressionを計算し、その値が偽(すなわち0)であれば、まず標準エラーフローstderにエラー情報を印刷し、aboortを呼び出してプログラム運転を終了します。そうでないと、クラスは何の役割もありません。マクロクラス()は通常、プログラムの正常な動作を確認するために使用されます。この表式の構造が間違っていない場合が本当の値です。デバッグが完了したら、ソースコードからassite()文を削除する必要はありません。マクロNDEBUGに定義がある場合、マクロクラス()の定義は空です。