日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 assert 函数 - C语言零基础入门教程

發布時間:2024/9/27 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 語言 數組下標越界和內存溢出區別
  • C 語言 使用指針遍歷數組
  • C 語言 指針和數組區別
  • C 語言 指針數組和數組指針區別
  • C 語言 野指針
  • C 語言 函數值傳遞和址傳遞
  • C 語言 函數不定長參數
  • C 語言 函數指針
  • C 語言 指針函數
  • C 語言 回調函數 callback
  • C 語言 #pragma once
  • C 語言 #include <> 與 #include “” 區別
  • C 語言 const 修飾函數參數
  • C 語言 const 和 define 區別
  • C 語言 #運算符
  • C 語言 ##運算符
  • C 語言 __VA_ARGS__
  • C 語言 ##__VA_ARGS__
  • C 語言 函數不定長參數 ##__VA_ARGS__經典案例
  • C 語言 va_start 宏
  • C 語言 va_end 宏
  • C 語言 va_arg 宏
  • C 語言 vprintf 函數
  • C 語言 va_start / va_end / va_arg 自定義 printf 函數
  • C 語言 main 函數
  • C 語言 main 函數參數 main(int argc, char *argv[])
  • C 語言 exit 函數
  • C 語言 abort 函數
  • C 語言 assert 函數
  • 未經允許不得轉載:猿說編程 ? C 語言 assert 函數

    總結

    以上是生活随笔為你收集整理的C语言 assert 函数 - C语言零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。