各不相同但容易混淆的三個概念:express
斷言<assert.h>
bash
經過斷言某個值爲真來進行測試數據結構
void assert(int expression); // 斷言expression的值爲真
斷言指針非空:函數
assert(ptr != NULL);
若條件不爲真,則終止程序並打印表達式及斷言位置:測試
> Assertion failed: value != NULL, file.c line 274
#define NDEBUG
在編譯時忽略全部斷言而不用修改源碼,固然命令行參數-DNDEBUG
也有一樣效果.data
)爲靜態變量建立空間並初始化堆棧幀(stack frame)操作系統
函數(.text
區)命令行
函數序(prologue):準備工做指針
函數體(body):code