關於微控制器中if,else if 的用法

2022-02-17 20:03:43 字數 4282 閱讀 4634

1樓:匿名使用者

#if............

#else if...........這是預處理語句。

預處理就是在進行編譯的第一遍詞法掃描和語法分析之前所作的工作。說白了,就是對原始檔進行編譯前,先對預處理部分進行處理,然後對處理後的**進行編譯。這樣做的好處是,經過處理後的**,將會變的很精短。

在微控制器中屬於條件編譯,也就是說當滿足條件,就將#if後面的語句進行編譯,否則,丟棄這些部分語句,編譯#else if後面的語句。

2樓:匿名使用者

#if #else #endif 這叫條件編譯,在編譯時確定哪些**編譯,哪些**不編譯。而if else 是在執行的時候根據條件決定執行哪部分**。

3樓:匿名使用者

#if (paritybit == none_parity) //

s2con = 0x5a; //8位可變波特率 (無校驗位)

#elif (paritybit == odd_parity) || (paritybit == even_parity) || (paritybit == mark_parity)

s2con = 0xda; //9位可變波特率,校驗位初始為1

#elif (paritybit == space_parity)

s2con = 0xd5; //9位可變波特率,校驗位初始為0

#endif

我拿這一段舉例子, #if (paritybit == none_parity) :如果if後面的條件成立,編譯後面部分,就是s2con = 0x5a; //8位可變波特率 (無校驗位)。#elif (paritybit == odd_parity) || (paritybit == even_parity) || (paritybit == mark_parity):

如果前面#if條件沒有成立,沒有編譯,繼續判斷這一句, 這一句再不成立,在判斷下面的#elif ,一直到#endif 為止。 #endif就是一段條件編譯的結束。 每一個#if或者#ifndef或者#ifdef為開始的條件起始,必對應有一個#endif條件編譯的結束。

else if和if語句的用法,c語言微控制器

4樓:端木微雨

不一樣的,第一種任何一個值都要判斷三次,而第二種如果i>10,則只判斷一次,如果i<10,則判斷兩次,如果i=10,則判斷三次,效率不一樣,而且第二種看起開更清晰不是嘛。

5樓:ever磊

else if相當於

if()

else

}你要判斷i的數值區間時,如果只使用if 那麼無論i的數值如何都要判斷三次。

如果使用if...else...那麼如果i大於10,只用判斷1次。

i小於10只用判斷2次。

i等於10判斷3次。

不過你的程式如果是

if (i> 10)

else if(i<10)

else

i等於10就只需要判斷兩次

6樓:匿名使用者

不一樣,例子中如果i大於10成立,前者會進行三次條件判斷運算i>10,i<10和i==0(應是雙等號)

後例只判斷i>10,後面的兩個判斷因為是else if而不進行判斷了,屬於i>10的另外一個分支

從效果上來看,這兩個例子的作用相同,但是因為這三個條件是互斥的才會這樣(最後的i==10判斷可省略),如果條件不是互斥的就會導致執行效果的很大不同

7樓:倒黴熊

基本上情況一樣,假設在if中不修改i的值的話。但如果在if中修改i的值就不一樣了。

第一種情況是 三個if都可能執行,但第二種情況只會執行其中的一個if。

例如:i=11時,下面程式雖然看起來很無聊,但是確實可能存在的:

if(i>10)

if(i<10)

則這兩個if都會執行,最後i=8了。

但是if(i>10)

else if(i<10)

則只會執行if,不會執行else if,兩個是互斥的。最後i=9.

51微控制器中的if-else if套嵌,下面的else if中的語句怎麼執行不了啊

8樓:匿名使用者

我幫你排了一下,你的if-else很亂,不執行的語句包含在if(key_swept(0))的一個分支中。如果不滿足if(key_swept(0))條件,自然也就跳出分支,不執行你想執行的語句了。想必你應該知道如何修改了吧。

9樓:思念天涯

每次寫完一次if就要用else了,那你那樣子寫也不夠規範,寫得有些亂,建議看一下人家的規範化程式設計

10樓:匿名使用者

你的巢狀的第一個if後面的屬於這個if的語句加上大括號!注意**的可讀性,美觀性,也方便自己除錯程式

51微控制器else if什麼意思

11樓:匿名使用者

if(k==0)

{}else

{}這裡bai就是說

如果說k確實為0,就du執zhi行if後面的dao{}裡面的程式;專如果k為除0以外的任何數屬,就執行else後面{}的語句。

微控制器,全稱單片微型計算機(英語:single-chip microcomputer),又稱微控制器(microcontroller),是把**處理器、儲存器、定時/計數器(timer/counter)、各種輸入輸出介面等都整合在一塊積體電路晶片上的微型計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自**(不用外接硬體)和節約成本。

它的最大優點是體積小,可放在儀表內部,但儲存量小,輸入輸出介面簡單,功能較低。由於其發展非常迅速,舊的微控制器的定義已不能滿足,所以在很多應用場合被稱為範圍更廣的微控制器;由於單晶片微電腦常用於當控制器故又名single chip microcontroller,但是目前在中國大陸仍多沿用「微控制器」的稱呼。

12樓:手機使用者

等於1就執行語句2,如果例出的else的條件都不符合的話就執行語句3,因為語句3沒有條件判斷。

13樓:餘音嫋嫋

舉個bai例子你就明du白了

if(i==0)

else

else

語句3;

}當i不等於0,才執行第一個專

屬else裡面的語句

14樓:匿名使用者

相當於之前if相反條件後又加了一個條件。

15樓:匿名使用者

相當於還是一個判定條件比如:

if(a==1)

else if(a>1)

else if(a<1)

.........

微控制器中if語句的使用1

16樓:你我悖道各蒼涼

1、if...else 語句

除了要在括號裡條件滿足時執行相應的語句外,在不滿足該條件的時候,也要執行一些另外的語句,這時候就用到了 if...else 語句,它的基本語法形式是:

if (條件表示式)else

2、if...esle 語句

if...esle 語句是一個二選一的語句,或者執行 if 分支後的語句,或者執行 else 分支後的語句。還有一種多選一的用法就是 if...

else if 語句。他的基本語法格式是:

if (條件表示式 1)

else if (條件表示式 2)

else if (條件表示式 3)

... ...

else

他的執行過程是:依次判斷條件表示式的值,當出現某個值為「真」時,則執行相對應的語句,然後跳出整個 if 的語句塊,執行「語句 n」後面的程式;如果所有的表示式都為「假」,則執行 else 分支的「語句 n」後,再執行「語句 n」後邊的程式。

if 語句在 c 語言程式設計中使用頻率很高,用法也不復雜,所以必須要熟練掌握。

17樓:匿名使用者

首先if()的括號中的值等於1(或者為真)才會執行下面{}大括號中的語句,怎麼樣是等於1(為真)。就是比如前面定義了n=1;而後面的if(n==1),則括號內n本來就是等於1的,所以括號中的值為真,執行下下面的語句.

而!n的"!"歎號則是表示取反的意思,如果上面定義了n=1;而後面的(!n)則是n取反,括號內的值等於0(不為真),則跳過下面大括號的語句不執行.

18樓:匿名使用者

if(aaa==1)

關於微控制器檢測電流流向的問題,關於微控制器檢測電流流向的一個問題。

採用附圖所示電路,還有隔離效果。左邊的電阻是電流取樣,在能點亮光耦的情況下,阻值儘量小。中間兩個電阻是光耦限流電阻。c d點輸出到微控制器,要分別接上拉電阻。當電流由a流向b時,上面的光耦點亮,c為低電平。當電流由b流向a時,下面的光耦點亮,d為低電平。其實遙控模組實現正反轉的方式是通過一個埠輸出高...

關於微控制器中的beep 新手問題

for i 0 i nop nop 簡單的說將 for i 0 i nop 換成delayms 100 函式自己編嘗試改變1,10,50,100,200就知道其中奧妙了 微控制器c語言中beep beep什麼意思 beep 取反 應該是驅動蜂鳴器的 當蜂鳴器響的時候執行這一句後就不響了。反之一樣。按...

微控制器原理的參考文獻有哪些,急求關於微控制器的外文參考文獻五篇,不要具體內容,只要標題,作者,年份,型別等就可以了

1 李廣弟等 微控制器基礎 北京航空航天出版社,2001.7 2 樓然苗等 51 系列微控制器設計例項 北京航空航天出版社,2003.3 3 唐俊翟等 微控制器原理與應用 冶金工業出版社,2003.9 4 劉瑞新等 微控制器原理及應用教程 機械工業出版社,2003.7 5 吳國經等 微控制器應用技術...