C语言 assert 函数 - C语言零基础入门教程
生活随笔
收集整理的這篇文章主要介紹了
C语言 assert 函数 - C语言零基础入门教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一.assert 函數簡介
- 二.assert 函數使用
- 三.assert 函數用法總結與注意事項
- 四.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.assert 函數簡介
對于斷言,相信大家都不陌生,大多數編程語言也都有斷言這一特性。簡單地講,斷言就是對某種假設條件進行檢查。assert 宏原型定義:
//需要包含頭文件 <assert.h> #include <assert.h>/*描述:如果它的條件返回錯誤,則終止程序執行參數:expression : 條件判斷或者表達式*/void assert( int expression );assert 將通過檢查表達式 expression 的值來決定是否需要終止執行程序。也就是說,如果表達式 expression 的值為假(即為 0),那么它將首先向標準錯誤流 stderr 打印一條出錯信息,然后再通過調用 abort 函數終止程序運行;否則,assert 無任何作用。
二.assert 函數使用
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 assert 函數 //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************/#include <stdio.h> #include <assert.h> #include <stdlib.h> int main( void ) {FILE *fp;fp = fopen( "456.txt", "w" );//以可寫的方式打開一個文件,如果不存在就創建一個同名文件assert( fp ); //所以這里不會出錯fclose( fp );fp = fopen( "123.txt", "r" );//以只讀的方式打開一個文件,如果不存在就打開文件失敗assert( fp ); //所以這里出錯fclose( fp ); //程序永遠都執行不到這里來return 0; }默認情況下,assert 宏只有在 Debug 版本(內部調試版本)中才能夠起作用,而在 Release 版本(發行版本)中將被忽略。
三.assert 函數用法總結與注意事項
1.使用 assert 在函數開始處檢驗傳入參數的合法性
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 assert 函數 //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************/int resetBufferSize(int nNewSize) {//功能:改變緩沖區大小,//參數:nNewSize 緩沖區新長度//返回值:緩沖區當前長度//說明:保持原信息內容不變 nNewSize<=0表示清除緩沖區assert(nNewSize >= 0);assert(nNewSize <= MAX_BUFFER_SIZE);... }2.每個 assert 只檢驗一個條件,因為同時檢驗多個條件時,如果斷言失敗,無法直觀的判斷是哪個條件失敗
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 assert 函數 //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************///錯誤寫法 assert(a>=0 && b<=0 && c>0);//正確寫法 assert(a>=0); assert(b<=0); assert(c>0);3. assert 缺點是頻繁的調用會極大的影響程序的性能,增加額外的開銷。
四.猜你喜歡
未經允許不得轉載:猿說編程 ? C 語言 assert 函數
總結
以上是生活随笔為你收集整理的C语言 assert 函数 - C语言零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++ strtod函数 - C语言
- 下一篇: android 获取通讯录全选反选_Xa