
用C語(yǔ)言開(kāi)發(fā)Arduino
上期分享中,我們打開(kāi)了【Blink】代碼。這些代碼允許我們控制Arduino板上的LED小燈每秒鐘亮滅一次。
但是,首先出現的是灰色部分代碼又是什么呢?這部分被/* 和 */ 所包圍,屬于程序中的注釋。

灰色部分是注釋
注釋并不會(huì )對程序的執行產(chǎn)生任何影響,事實(shí)上,我們在上傳程序的時(shí)候,IDE要先將代碼進(jìn)行'編譯','編譯'的過(guò)程是將代碼從人類(lèi)認識的語(yǔ)言“翻譯”成計算機或者說(shuō)Arduino認識的語(yǔ)言。
注:Arduino使用avr-gcc編譯器,這是一款將GCC(用于編譯C、C++等)移植到AVR(一種用于電氣生產(chǎn)領(lǐng)域的精簡(jiǎn)指令集高速單片機)的版本。

AVR
在翻譯的過(guò)程中,注釋會(huì )被忽略掉。所以無(wú)論你在注釋里面寫(xiě)了什么,計算機都不會(huì )知道。
但注釋對于編程還是相當重要的,注釋的存在主要是給編程者看的,它提示編程者一段代碼的含義,或者使用條件等等。
在我們用C語(yǔ)言為Arduino編寫(xiě)代碼的過(guò)程中,注釋主要有兩種,一種是前面我們看到的由/*和*/組成的注釋?zhuān)@種注釋叫多行注釋?zhuān)嘈凶⑨屩性试S有換行存在。
還有一種注釋叫單行注釋?zhuān)丛谧⑨寖热萸懊婕?/ 這種注釋只適用于一行,不能有換行。

注:多行注釋適用于需要較多文字描述的場(chǎng)合,單行注釋多適用于提示之類(lèi)的場(chǎng)合,使用哪種注釋根據開(kāi)發(fā)者的需要決定。
除了灰色的注釋部分,程序中還有兩段代碼,我們稱(chēng)之為setup函數和loop函數。


所謂的函數就是執行特定功能的代碼段,對于函數的具體講解我們放在后面。
這里我們先知道setup和loop分別是兩段函數的函數名,其作用范圍是由一對花括號界定的。
注:setup在英文中有設置的意思,loop是回路,環(huán)的意思。
這兩段函數執行的功能非常特殊,所有的Arduino程序一定要有這兩段函數。setup函數用于A(yíng)rduino的初始化工作,Arduino控制板上電運行后,setup會(huì )首先執行函數體內的程序指令,并且僅執行一次。
當setup函數完成初始化工作后,loop函數就會(huì )開(kāi)始執行,loop函數會(huì )在整個(gè)Arduino控制板運行期間反復執行,直到控制板斷電關(guān)閉,所以大部分的程序指令我們都會(huì )交由loop函數去執行。
細心的朋友可能會(huì )發(fā)現,每條程序指令的結尾處都有一個(gè)分號(;),這樣以分號結尾的,執行某一功能的代碼我們稱(chēng)之為語(yǔ)句。

用分號作結束
就像我們人類(lèi)語(yǔ)言的一句話(huà)一樣,人類(lèi)語(yǔ)言是用句號(。)表示一段有意義的話(huà),而C語(yǔ)言則是用分號表示“一句話(huà)”。

沒(méi)有結束的話(huà)不能稱(chēng)之為語(yǔ)句
注:使用分號是因為我們在敲擊鍵盤(pán)的過(guò)程中右手小拇指正好處于分號的位置
在“話(huà)”與“話(huà)”或者說(shuō)“語(yǔ)句”與“語(yǔ)句”之間,不一定要有換行。比如我們可以將loop函數中的四條語(yǔ)句合并在一行也是可以的。

寫(xiě)在1行中的4條程序語(yǔ)句
在IDE中,空格和換行都沒(méi)有任何的實(shí)際的功能,源代碼經(jīng)過(guò)編譯后,所有的空格和換行都會(huì )被忽略。就像之前我們討論過(guò)的“注釋”一樣,使用空格和換行的目的是為了方便人們閱讀和理解代碼的。
一個(gè)良好的代碼書(shū)寫(xiě)習慣會(huì )讓開(kāi)發(fā)效率大大提高,所以我們會(huì )在語(yǔ)句間添加換行。換行后,再進(jìn)行縮進(jìn)。
注:縮進(jìn)一般使用'Tab'鍵,就是左手小拇指斜上方的那個(gè)鍵,在A(yíng)rduino的IDE中,一個(gè)'Tab'鍵相當于2個(gè)空格。
不同的編碼者可能擁有不同的換行和縮進(jìn)風(fēng)格,比如有的人喜歡花括號獨占一行,或者縮進(jìn)用4個(gè)空格等。其實(shí)都無(wú)所謂,只要秉持一個(gè)原則,就是方便代碼的閱讀和理解即可。
本期分享我們討論了程序的注釋以及兩個(gè)重要的函數塊(setup和loop)的功能,并且認識了程序中“語(yǔ)句”的概念,對一個(gè)良好的編碼格式有了初步的了解。下期,我們會(huì )具體討論這些語(yǔ)句都做了哪些工作。
歡迎關(guān)注“極樂(lè )coder飯”,為您獻上有趣有用的原創(chuàng )編碼技巧知識。
聯(lián)系客服