中只有乙個assert巨集。
assert巨集用於為程式增加診斷功能,形式如下:
void
assert
(int expression)
如果執行語句
assert
(expression)
時,表示式的值為0,則assert巨集將在stderr中列印一條訊息,比如:
assertion failed:表示式,file 源檔名,line 行號
列印訊息後,該巨集將呼叫abort終止程式的執行。其中的原始檔和行號來自於預處理器巨集__file__以及__line__。
如果定義了巨集ndebug,同時又包含了標頭檔案,則assert巨集將被忽略。
#include
#include
intmain()
&'c:\users\swy\.vscode\extensions\ms-vscode.cpptools-0.27.1\debugadapters\bin\windowsdebuglauncher.exe'
'--stdin=microsoft-miengine-in-ce44jt01.wkp'
'--stdout=microsoft-miengine-out-z401vdid.zwc'
'--stderr=microsoft-miengine-error-bzwjf2pm.eif'
'--pid=microsoft-miengine-pid-ceq5e0lw.rgk'
'--dbgexe=g:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\gdb.exe'
'--interpreter=mi'
請輸入乙個整數值: 9
assertion failed!
expression: a >= 10
&'c:\users\swy\.vscode\extensions\ms-vscode.cpptools-0.27.1\debugadapters\bin\windowsdebuglauncher.exe'
'--stdin=microsoft-miengine-in-bksgqqtk.pn1'
'--stdout=microsoft-miengine-out-ifhvr50v.2wj'
'--stderr=microsoft-miengine-error-jy0bmmwd.a2a'
'--pid=microsoft-miengine-pid-2ihgcj2f.q4x'
'--dbgexe=g:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\gdb.exe'
'--interpreter=mi'
請輸入乙個整數值: 11
輸入的整數是: 11
請輸入字串: long live open
source
輸入的字串是: long
assert
(noffset>=
0&& noffset+nsize<=m_ninfomationsize)
;
改為:
assert
(noffset >=0)
;assert
(noffset+nsize <= m_ninfomationsize)
;
assert
(i++
<
100)
;
改為:
assert
(i <
100)
i++;
#include
#define ndebug
#include
C語言標準庫函式qsort詳解
功 能 使用快速排序例程進行排序 標頭檔案 stdlib.h 用 法 void qsort void base,int nelem,int width,int fcmp const void const void 引數 1 待排序陣列首位址 2 陣列中待排序元素數量 3 各元素的占用空間大小 4 指...
詳解C標準庫堆記憶體函式
c標準庫堆記憶體函式有4個 malloc free calloc realloc,其函式宣告放在了 include 中,主要用來申請和釋放堆記憶體。堆記憶體的申請和釋放 wiki,chs 需要發起系統呼叫,會帶來昂貴的上下文切換 使用者態切換到核心態 十分耗時。另外,這些過程可能是帶鎖的,難以並行化...
C語言標準庫的常用函式
int printf const char format,傳送格式化輸出到標準輸出 stdout。int sprintf char str,const char format,傳送格式化輸出到str所指向的字串。double atof const char str 把引數str所指向的字串轉換為乙個...