亚欧洲精品在线观看,窝窝影院午夜看片,久久国产成人午夜av影院宅,午夜91,免费国产人成网站,ts在线视频,欧美激情在线一区

C語(yǔ)言

c語(yǔ)言中那些被忽略的知識(shí)點(diǎn)

時(shí)間:2025-05-14 04:57:09 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

c語(yǔ)言中那些被忽略的知識(shí)點(diǎn)

  導(dǎo)語(yǔ):C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。下面我們來(lái)看看c語(yǔ)言中那些被忽略的知識(shí)點(diǎn),希望對(duì)大家有所幫助。

c語(yǔ)言中那些被忽略的知識(shí)點(diǎn)

  c語(yǔ)言作為程序員來(lái)說(shuō),是入門語(yǔ)言。c語(yǔ)言的教材也是多的數(shù)不勝數(shù),但是呢,有的c語(yǔ)言教材100-200多頁(yè),有的教材600頁(yè)+,然而很多學(xué)者都是學(xué)的前者教材。

  為什么大家常說(shuō)的簡(jiǎn)單的c語(yǔ)言都可以編寫那么厚的教材?其一,c語(yǔ)言并不簡(jiǎn)單,或者說(shuō),敢說(shuō)c語(yǔ)言簡(jiǎn)單的人都不是一般人;其二,c語(yǔ)言知識(shí)點(diǎn)覆蓋面廣,200多頁(yè)的教材只是教會(huì)了你怎么用,并沒(méi)有教會(huì)你多少實(shí)質(zhì)性內(nèi)容;其三,很多實(shí)用的知識(shí)點(diǎn),在200多頁(yè)的教材也并沒(méi)有體現(xiàn)出來(lái)。

  今天我們主要聊聊那些一般不被重用的,但是卻對(duì)提升代碼質(zhì)量和效率有奇佳效果的知識(shí)點(diǎn)。實(shí)話說(shuō),沒(méi)有進(jìn)公司前,我也忽略了這些,有一些甚至上學(xué)期間都沒(méi)見(jiàn)過(guò)。好糗。

  正在看這篇文章的朋友,如果你還在上學(xué)階段,請(qǐng)告訴我,你聽(tīng)過(guò)"斷言"這個(gè)名詞嗎?如果沒(méi)聽(tīng)過(guò),接下來(lái)我就給你好好說(shuō)說(shuō),讓你了解了解,如果你聽(tīng)過(guò),給你點(diǎn)贊。

  1.程序一般分為兩個(gè)版本,Debug和Release版本.Debug版本用于內(nèi)部調(diào)試,Release版本給用戶使用。斷言的關(guān)鍵字是assert.先看下面一個(gè)實(shí)例。

  代碼功能不用多解釋,隨便寫的一個(gè)算法。斷言assert用于檢查"不應(yīng)該"發(fā)生的情況。如上代碼在運(yùn)行的時(shí)候,如果assert的參數(shù)為假,那么程序會(huì)在assert中止,同時(shí)會(huì)提示你在哪個(gè)文件的多少行出現(xiàn)了什么錯(cuò)誤,也就是assert所在的位置。

  需要格外注意的是,assert不是一個(gè)函數(shù),是宏。程序員可以把a(bǔ)ssert看成一個(gè)在任何系統(tǒng)狀態(tài)下都可以安全使用的無(wú)害測(cè)試手段。并且,使用assert可以省略if else的判斷,并且他比if else更智能。如果程序在assert終止,并不是說(shuō)含有該assert的函數(shù)有錯(cuò)誤,而是調(diào)用者除了差錯(cuò),assert可以更方便的幫助我們找到發(fā)生錯(cuò)誤的原因。

  2.assert作為一個(gè)宏,原型定義在中,如下圖,就是判斷表達(dá)式的真假來(lái)反饋給程序員信息。

  3.任何事物的出現(xiàn)都有利和弊,assert也是如此,他的缺點(diǎn)是,如果頻繁調(diào)用assert,會(huì)極大地影響到程序的性能,增加格外的開銷。所以,工具雖好用,可不要貪用哦。在調(diào)試結(jié)束后,可以在“#include ”前加 #define NDEBUG來(lái)禁用assert.如下:

  4.了解了斷言assert,在實(shí)際使用中,務(wù)必注意以下點(diǎn):

 、偈褂脭嘌圆蹲讲粦(yīng)該發(fā)生的非法情況。不要混淆非法情況與錯(cuò)誤情況的區(qū)別,后者是必然存在并且是一定要解決的bug。

 、赼ssert可以放在程序中的任何位置,但是一般放在程序的入口處,檢查參數(shù)的有效性或合法性。

 、墼诰帉懞瘮(shù)的時(shí)候,要清楚在該函數(shù)中,我要做哪些假定,一旦確定了的假定,就需要使用斷言對(duì)假定進(jìn)行檢查。

 、茉絹(lái)越多的程序員都有了保證程序的健壯性的意識(shí),很好。也就是進(jìn)行了很多防錯(cuò)設(shè)計(jì),當(dāng)進(jìn)行防錯(cuò)設(shè)計(jì)時(shí),如果“不可能發(fā)生的事”的確發(fā)生了,就需要使用斷言報(bào)警。

【c語(yǔ)言中那些被忽略的知識(shí)點(diǎn)】相關(guān)文章:

C語(yǔ)言中的整數(shù)06-16

C語(yǔ)言中的字符07-18

C語(yǔ)言中volatile的含義08-14

c語(yǔ)言中怎么畫圖11-06

c語(yǔ)言中bit的用法11-01

C語(yǔ)言中assert用法09-22

C語(yǔ)言中的指針解讀11-01

c語(yǔ)言中什么是變量08-22

C語(yǔ)言中的assert用法10-10