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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Assert(断言) 的用法

發布時間:2025/7/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Assert(断言) 的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Assert

Assert是斷言的意思,頭文件為assert.h,

assert是一個宏

功 能: 測試一個條件并可能使程序終止

用 法: void assert(int test);

在單元測試中經常使用斷言

斷言只有在Debug模式下才有效,它可以有兩種形式

1.assert Expression1

2.assert Expression1:Expression2

其中Expression1應該總是一個布爾值,Expression2是斷言失敗時輸出的失敗消息的字符串。如果Expression1為假,則拋出一個 AssertionError,這是一個錯誤,而不是一個異常,也就是說是一個不可控制異常(unchecked Exception),AssertionError由于是錯誤,所以可以不捕獲,但不推薦這樣做,因為那樣會使你的系統進入不穩定狀態。

官方解釋是:編寫代碼時,我們總是會做出一些假設,斷言就是用于在代碼中捕捉這些假設,可以將斷言看作是異常處理的一種高級形式。斷言表示為一些布爾表達式,程序員相信在程序中的某個特定點該表達式值為真。可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言,而在部署時禁用斷言。同樣,程序投入運行后,最終用戶在遇到問題時可以重新起用斷言。

通俗一點說:編寫代碼時,我們假設代碼運行到某行時,某些變量的值應該是等于多少,如果不等于,說明程序邏輯不對,可能造成不穩定,

比如,我之前定義了一個變量m ,在程序運行過程中m的值是會改變的,依照正確的思路,程序運行到100行時m的值應該是100,那么,我就在程序的第101行寫上 assert(m=100);

如果m==100,那么assert返回true,如果m!=100,那么assert會返回false,程序運行到這里就會出現斷言錯誤,

可見assert很大程度上輔助測試代碼的,讓代碼更強壯更穩定

用法驗證:

程序實例1:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 // 0001.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<assert.h> #include<stdio.h> #include<stdlib.h> struct?ITEM { ????? ????int?key; ????? ????int?value; ????? }; void?additem(struct?ITEM* itemptr) { ????? ????assert(itemptr!=NULL); ????? } int?main(int?argc,?char* argv[]) { ????additem(NULL); ????? ????return?0; ????? }

  

?

實例2:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 // 0001.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<stdio.h> #include<assert.h> #include<stdlib.h> int?main(int?argc,?char* argv[]) { FILE* fp; fp=fopen("test.txt","w");//以可寫的方式打開一個文件,如果不存在就創建一個同名文件 assert(fp);//所以這里不會出錯 fclose(fp); fp=fopen("noexitfile.txt","r");//以只讀的方式打開一個文件,如果不存在就打開文件失敗 assert(fp);//所以這里出錯 fclose(fp);//程序永遠都執行不到這里來 ????return?0; ????? }

  

?

轉載于:https://www.cnblogs.com/writeLessDoMore/p/6732522.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Assert(断言) 的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产欧美一区二区三区免费看 | 韩国av电影在线观看 | 97桃色 | 999精品网站 | 黑人大群体交免费视频 | 视频1区 | 福利片在线看 | 亚洲精品字幕在线 | 天堂在线视频网站 | 日韩精品一区二区三区四区五区 | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲香蕉视频 | 欧美日韩国产区 | 成人夜色视频 | 欧美激情国产日韩精品一区18 | 网站色| 欧美一区三区三区高中清蜜桃 | 日韩一区二区a片免费观看 伊人网综合在线 | 4438成人网| 一级片免费在线 | 成全世界免费高清观看 | 亚洲男人天堂 | 精品欧美日韩 | 黄色网址你懂的 | 无码日韩人妻精品久久蜜桃 | 亚洲国产成人在线视频 | 四虎午夜| 国产123区 | av资源站 | 久久精品欧美一区 | 久久奇米 | 国产一区二区高清 | 99久久精品国产一区色 | 一区二区国产精品精华液 | 污污网站免费 | 羞羞色院91蜜桃 | 蜜臀视频一区二区三区 | 外国黄色录像 | 男生脱女生衣服 | 久久在线免费观看 | 日本wwwxxx| 快射视频网站 | 国产这里只有精品 | 久草免费新视频 | 精品国产1区2区 | 天天久 | 欧美日韩国产综合在线 | 一本久久精品一区二区 | 亚洲国产精品成人综合在线 | 亚洲一区二三区 | av男女| 中文字幕一区二区三区久久久 | 亚洲欧美综合久久 | 久久久蜜桃一区二区 | 在线视频一区二区三区 | 97人人爽 | 美女下部无遮挡 | 久久ww| 亚洲中文字幕在线一区 | 国产在线不卡av | 国产成人一区二区三区免费看 | 午夜免费观看视频 | 亚洲丝袜视频 | 免费视频污 | 在线观看毛片视频 | 午夜写真片福利电影网 | 亚洲免费三级 | 日韩欧美国产高清91 | 视频1区 | 日本h视频在线观看 | 亚洲毛片网 | 爱吃波客今天最新视频 | www.五月婷婷.com | 中文字幕在线观看91 | 欧美一线天 | 日韩黄网 | 久久久久久亚洲av无码专区 | 一区二区三区四区高清视频 | 国产成人一级 | 91精品国产综合久久福利 | 国产一区二区三区精品视频 | 日日夜夜精品视频 | 宅男午夜影院 | 99久久视频| 国产区免费观看 | 国产91网 | 韩日午夜在线资源一区二区 | 国产三极片 | 动漫美女被到爽 | 久久久中文网 | 欧美人与性禽动交精品 | heyzo久久| 天堂v在线观看 | 狠狠躁日日躁 | 黄色aaa毛片| 国产精品国产三级国产Av车上的 | 麻豆av免费在线 | 欧美精品在线播放 | 女同毛片一区二区三区 |