1.1 assert
void assert( int expression );
assert宏用於爲程序增加診斷功能。當assert(exp)執行時,如果exp爲0,
則在標準出錯輸出流stderr輸出一條如下所示的信息:
Assertion failed: expression, file filename, line nnn
然後調用abort終止執行。其中的源文件名filename和行號nnn來自於預處理宏__FILE__和__LINE__。
如果<assert.h>被包含時定義了宏NDEBUG,那麼宏assert被忽略。
示例:
#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;
}