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に定義がある場合、マクロクラス()の定義は空です。