C語言中如何寫斷言

鍾超發表於2011-03-15

這是我自己動手寫的,主要是參考了《華為程式碼規範》上的內容。

注意#define用法的各個事項,這裡容易出錯。

/********************************************** FILE NAME exam_assert.h AUTHOR Ginhom Lau Date 03.15.2011 Place Pohang **********************************************/ #ifndef ASSERT_H_INCLUDED void exam_assert( char * file_name, unsigned int line_no ) { printf( "/n[EXAM]Assert Failed: %s, line %u/n", file_name, line_no ); abort(); } #define EXAM_ASSERT(condition) / if (condition) / { / ; / } / else / { / exam_assert(__FILE__, __LINE__); / } #else #define EXAM_ASSERT(condition) NULL #endif // ASSERT_H_INCLUDED

記得要包含標頭檔案進去。

/********************************************** FILE NAME exam_assert.c AUTHOR Ginhom Lau Date 03.15.2011 Place Pohang **********************************************/ #include "assert.h" int main(void) { EXAM_ASSERT(3 < 2); return 0; }

怎麼樣?短小精悍哈,基本意思達到了就行。再要什麼複雜功能,自己去修改吧!

歡迎評論、留言,共同探討。

相關文章