win32 断言函数和转换到COFF期间失败错误
生活随笔
收集整理的這篇文章主要介紹了
win32 断言函数和转换到COFF期间失败错误
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
斷言(assert)的用法
? ? assert,是個宏;
? ? 其作用可描述為:
if(假設成立)
{
? ? ?程序正常運行;
}
else
{
? ? ? 報錯&&終止程序!(避免由程序運行引起更大的錯誤) ?
}
assert 宏的原型定義在 assert.h 中,其作用是如果它的條件返回錯誤,則終止程序執行。
void assert( int expression );
assert 的作用是現計算表達式 expression ,如果其值為假(即為0),那么它先向 stderr 打印一條出錯信息,然后通過調用 abort 來終止程序運行。
使用 assert 的缺點是,頻繁的調用會極大的影響程序的性能,增加額外的開銷。
在調試結束后,可以通過在包含 #include 的語句之前插入 #define NDEBUG 來禁用 assert 調用,如下:
#include?
#define NDEBUG?
#include
?
新建一個win32控制臺程序;生成,若出現下圖錯誤,LNK1123,
如下圖,嵌入清單,設置為否即可;
如果assert(1),運行如下,沒有任何情況發生;
assert(0)則如下,會打印出錯消息,并彈出 中止-重試-忽略 的對話框;
// astdemo.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h" #include <assert.h>int _tmain(int argc, _TCHAR* argv[]) {assert(0);getchar();return 0; }?
總結
以上是生活随笔為你收集整理的win32 断言函数和转换到COFF期间失败错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电力3d gis
- 下一篇: VC++非MFC项目中使用TRACE宏