C 程式設計/assert.h/函式參考
外觀
void assert(expression);
assert 宏返回 void,即 沒有值。
assert 宏的行為取決於 NDEBUG 宏的值。有關更多詳細資訊,請參閱 assert.h。
如果定義了 NDEBUG,則無論引數如何,宏 assert 都定義為
#define assert(expression) ((void) 0)
如果未定義 NDEBUG,則 assert 宏充當診斷測試。如果宏的 expression 引數為假(請參閱 C 程式設計/控制),則宏擴充套件為一個語句,該語句將引數的文字、當前檔名、行號和函式名寫入標準錯誤流。最後,assert 宏呼叫 abort() 函式。
每次包含 assert.h 標頭檔案時,assert 宏都會根據 NDEBUG 的值重新定義。