當(dāng)前位置:首頁 > 公眾號精選 > C語言編程
[導(dǎo)讀]初學(xué)者階段編程時,編寫基本語句可能會有隱含錯誤的方式,基本語句主要針對if、for、while、goto、switch等,它們看似簡單,但使用時隱患比較多,本文歸納了使用語句的一些規(guī)則和建議。基本語句編程舉例if語句if語句是C/C語言中最簡單、最常用的語句,然而很多編程人員用隱...

初學(xué)者階段編程時,編寫基本語句可能會有隱含錯誤的方式,基本語句主要針對if、for、while、goto、switch等,它們看似簡單,但使用時隱患比較多,本文歸納了使用語句的一些規(guī)則和建議。

基本語句編程舉例

  • if語句

if語句是C /C語言中最簡單、最常用的語句,然而很多編程人員用隱含錯誤的方式寫if語句,本文以“與零值比較”為例,進(jìn)行討論。

(1)布爾變量與零值比較:不可將布爾變量直接與TRUE、FALSE或者1、0比較。根據(jù)布爾類型的語義,零值為“假”(記為FALSE),任何非零值都是“真”(記為TRUE)。TRUE的值究竟是什么并沒有統(tǒng)一的標(biāo)準(zhǔn),

例如VC 將TRUE定義為1,而VB則將TRUE定義為-1。

假設(shè)布爾變量名為flag,它與零值比較的標(biāo)準(zhǔn)if語句如下

if(flag)//表示flag為真
if(!flag) //表示flag為假

其他的用法都屬于不良風(fēng)格,例如:

if(flag == TRUE)
if(flag == FALSE)
if(flag == 1 )
if(flag == 0 )

(2)整型變量與零值比較:應(yīng)當(dāng)將整型變量用“==”或“!=”直接與0比較。假設(shè)整型變量的名字為value,它與零值比較的標(biāo)準(zhǔn)if語句如下:

if(value == 0)
if(value != 0)

不可以模仿布爾變量的風(fēng)格而寫成:

if(value)
if(!value) //會讓人誤解value是布爾變量

(3)浮點變量與零值比較:不可以將浮點變量用“==”或“!=”與任何數(shù)字比較。

千萬留意,無論是float還是double類型的變量,都有精度限制,所以一定要避免將浮點變量用“==”或“!=”與數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成“>=”或“<=”形式。假設(shè)浮點變量的名字為x,應(yīng)該將

if(x == 0.0) //隱含錯誤的比較

轉(zhuǎn)化為

if((x >= -EPSINON)
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

現(xiàn)在網(wǎng)上有很多播放量巨高的免費編程項目教程,很多學(xué)編程的同學(xué)可能都看過,就導(dǎo)致大家可能寫在簡歷上的內(nèi)容都差不多。

關(guān)鍵字: 項目 編程 簡歷

最近看到APP上,給我推送了很多類似的回答,借此機會,也想著重新審視一下自己的學(xué)習(xí)歷程,以及結(jié)合自身和大牛,分享一些學(xué)習(xí)經(jīng)驗,希望對大家有所啟發(fā)和幫助。

關(guān)鍵字: APP 嵌入式 C語言

SQLite是一個跨平臺的輕量級數(shù)據(jù)庫,支持C/C++開發(fā),可用于嵌入式中,關(guān)于C/C++使用SQLite的簡單實例,可參考這篇:“玩轉(zhuǎn)SQLite6:使用C語言來讀寫數(shù)據(jù)庫”,本篇來繼續(xù)介紹SQLite的基礎(chǔ)運算符與表...

關(guān)鍵字: SQLite C語言 數(shù)據(jù)庫

北京2022年9月29日 /美通社/ -- 近日,猿編程創(chuàng)始人李翊接受了《中國信息技術(shù)教育》雜志專訪?!吨袊畔⒓夹g(shù)教育》雜志由教育部主管、中央電化教育館等單位主辦,刊登專訪文章《人工智能教育普惠重在與校園實際結(jié)合 --...

關(guān)鍵字: 人工智能 創(chuàng)始人 編程 智能教育

為增進(jìn)大家對PLC的認(rèn)識,本文將對PLC編程的技巧予以介紹。

關(guān)鍵字: PLC 指數(shù) 編程

一直以來,機器人都是大家的關(guān)注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)砑{米機器人的相關(guān)介紹,詳細(xì)內(nèi)容請看下文。

關(guān)鍵字: 納米機器人 機器人 編程

在計算機科學(xué)中,內(nèi)存泄漏指由于疏忽或錯誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。

關(guān)鍵字: C語言 內(nèi)存泄漏

C語言使用函數(shù)調(diào)用,我們再熟悉不過了,但是函數(shù)調(diào)用在內(nèi)存中究竟發(fā)生了什么真的清楚嗎?只有搞清楚內(nèi)存里的內(nèi)幕,才算完全搞懂函數(shù)的調(diào)用。

關(guān)鍵字: C語言 函數(shù)調(diào)用

有個粉絲關(guān)于條件編譯的問題,程序一直編譯報錯。我整理了關(guān)鍵的部分,下面代碼是頭文件中的定義。

關(guān)鍵字: 條件編譯 C語言

首先要看英文和C語言的關(guān)系,有多大層度是需要英文的支持。我們都知道C語言中一共有32個關(guān)鍵詞,控制語句僅有9種,也就是說只需要掌握以上內(nèi)容就可以對C語言進(jìn)行應(yīng)用,對于一些復(fù)雜的指針等更合英文沒有關(guān)系。我相信短短的32個關(guān)...

關(guān)鍵字: C語言

C語言編程

178 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉