068 C語言libc中的assert

2021-09-11 04:15:45 字數 975 閱讀 5487

assert,斷言,大多時候適用於軟體開發過程中的除錯。大多數時候,我們開發過程中遇到故障的時候寧可希望軟體在故障的位置停下來也不願意跑乙個不確定的結果,這個時候我們就需要用到assert。

以下是乙個例子:

#include "stdio.h"

#include "assert.h"

int a = 123;

int b = 234;

int main(void)

編譯執行結果:

如果開發結束,這些測試**也不需要刪除,只需要使用ndebug的巨集來遮蔽掉其執行效果即可。**修改:

#define ndebug

#include "stdio.h"

#include "assert.h"

int a = 123;

int b = 234;

int main(void)

編譯以及執行結果:

需要注意的是,這個巨集必須定義在assert.h包含之前,否則是不起作用的。例如如下**:

#include "stdio.h"

#include "assert.h"

#define ndebug

int a = 123;

int b = 234;

int main(void)

編譯以及執行結果:

看得出,遮蔽沒有起到作用。

C語言程式設計中的問題

1 使用指標形式的形參作為返回值時,無返回 char strtrimr char pstr char strtriml char pstr char strtrim char pstr int get string const char key,char string while fgets lin...

C語言堆中的路徑

05 樹7 堆中的路徑 25 point s 將一系列給定數字插入乙個初始為空的小頂堆h。隨後對任意給定的下標i,列印從h i 到根結點的路徑。每組測試第1行包含2個正整數n和m 1000 分別是插入元素的個數 以及需要列印的路徑條數。下一行給出區間 10000,10000 內的n個要被插入乙個初始...

C語言程式設計中的指標

微控制器程式設計中,涉及指標的地方很多,需要多看多練習多總結。練習一 include include include int main void 儲存4個32位無符號整數的陣列 unsigned short uint16 1 16位的無符號整數 unsigned char uint8 1 無符號的字...