【C语言基础】C语言异常捕获机制 - assert
生活随笔
收集整理的這篇文章主要介紹了
【C语言基础】C语言异常捕获机制 - assert
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C語言異常捕獲機制 - assert
快速入門
想快速入門該模塊請訪問:介紹,數(shù)據(jù)接口,示例代碼
介紹
通常一個良好的代碼功能運行環(huán)境都有功能運行前檢查和運行后檢查兩個方面。C語言中提供了assert機制來做這件事情
- assert 的作用是現(xiàn)計算表達式 expression ,如果其值為假(即為0),那么它先向 stderr 打印一條出錯信息,然后通過調(diào)用 abort 來終止程序運行。
- 使用 assert 的缺點是,頻繁的調(diào)用會極大的影響程序的性能,增加額外的開銷。
注意:
- 每個assert只檢驗一個條件,因為同時檢驗多個條件時,如果斷言失敗,無法直觀的判斷是哪個條件失敗
- 不能使用改變環(huán)境的語句,因為assert只在DEBUG個生效,如果這么做,會使用程序在真正運行時遇到問題
- 只在debug版本中會生效,而release版本無效
- 因此不建議使用assert去做異常捕獲,或者代碼質(zhì)量檢查,寧愿多寫一點判斷分支,來避免引起不必要的問題。
數(shù)據(jù)與接口
頭文件
#include <assert.h>數(shù)據(jù)
/* 無數(shù)據(jù) */接口
斷言一個表達式是否為真,如果為假則報錯退出程序 assert( expr );偽代碼
#include "assert.h" int your_func(入?yún)?span id="ze8trgl8bvbq" class="token punctuation">) {assert(入?yún)?span id="ze8trgl8bvbq" class="token punctuation">);... fp = open();assert(fp);...return 0; }示例:比大小
#include <stdio.h> #include <assert.h>int main() {int num;printf("please enter the num:");scanf("%d", &num);assert(num > 10);printf("program succ ending\n");return 0; }參考鏈接
總結(jié)
以上是生活随笔為你收集整理的【C语言基础】C语言异常捕获机制 - assert的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机启用时间 查找方式,电脑实用知识技
- 下一篇: 优秀自我简介200字_全球战疫 翰墨传情