assert()用法
生活随笔
收集整理的這篇文章主要介紹了
assert()用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
assert宏的原型定義在<assert.h>中,其作用是如果它的條件返回錯誤,則終止程序執行,原型定義:[1]
#include <assert.h>void assert( int expression );
assert的作用是現計算表達式 expression ,如果其值為假(即為0),那么它先向stderr打印一條出錯信息,然后通過調用 abort 來終止程序運行。
//demo1.c #include <stdio.h> #include <assert.h> #include <stdlib.h>int demo1(int num) {assert(num>100);printf("demo2:%d\n",num);return 0; } //demo2.c #include <stdio.h> #include <assert.h> #include <stdlib.h>int demo2(int num) {assert(num>200);printf("demo2:%d\n",num);return 0; } //demo.c #include <stdio.h> #include <stdlib.h>int main( void ) {demo1(110);demo2(110);//不滿足 num>200的條件,報錯如下return 0; } 測試現象: root@ubuntu:/work/demo# gcc *.c ;./a.out demo2:110 a.out: demo2.c:7: demo2: Assertion `num>200' failed. Aborted?
在調試結束后,可以通過在包含#include <assert.h>的語句之前插入 #define NDEBUG 來禁用assert調用,示例代碼如下:
#include <stdio.h>#define NDEBUG
#include <assert.h>
如:
//demo2.c#include <stdio.h> #define NDEBUG //僅對本文件起作用 #include <assert.h> #include <stdlib.h>int demo2(int num) {assert(num>200);//未編譯展開宏。printf("demo2:%d\n",num);return 0; } 現象: root@ubuntu:/work/demo# gcc *.c ;./a.out demo2:110 demo2:110
?
參考:
1.?assert()函數用法總結
http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.html
?
轉載于:https://www.cnblogs.com/mylinux/p/4151610.html
總結
以上是生活随笔為你收集整理的assert()用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (软件工程复习核心重点)第四章总体设计-
- 下一篇: (数据库系统概论|王珊)第一章绪论-第一