Arduino編程基礎(chǔ)(二)——C\\C++語言基礎(chǔ)(上)
1.1 C\C++語言基礎(chǔ)
C\C++語言是國際上廣泛流行的計算機高級語言。絕大多數(shù)硬件開發(fā),均使用C/C++語言,Arduino也不例外。使用Arduino,需要有一定的C\C++基礎(chǔ),由于篇幅有限,本書僅對C\C++語言基礎(chǔ)進行簡單的介紹。此后章節(jié)中我們還會穿插介紹一些特殊用法及編程技巧。
1.1
1.1.1 數(shù)據(jù)類型
在C\C++語言程序中,對所有的數(shù)據(jù)都必須指定其數(shù)據(jù)類型。數(shù)據(jù)又有常量和變量之分。
需要注意的是,Genuino 101與AVR做核心的Arduino中的部分?jǐn)?shù)據(jù)類型所占用的空間和取值范圍有所不同。
變量
在程序中數(shù)值可變的量稱為變量。其定義方法如下
例如,定義一個整型變量i:
我們可以在定義時為其賦值,也可以定義后,對其賦值,例如:
和
兩者是等效的。
常量
在程序運行過程中,其值不能改變的量,稱為常量。常量可以是字符,也可以是數(shù)字,通常使用語句
定義常量。
還可以用宏定義來達到相同的目的。語句如下:
如在Arduino核心庫中已定義的常數(shù)PI,即是使用
定義的。
l 整型
整型即整數(shù)類型。Genuino 101可使用的整型類型及取值范圍如下
表 2‑1 整型與取值范圍
l 浮點型
浮點數(shù)也就是常說的實數(shù)。在Arduino中有float和double兩種浮點類型,在Genuino 101中,float類型占用4個字節(jié)(32位)內(nèi)存空間,double類型占用8個字節(jié)(64位)內(nèi)存空間。
浮點型數(shù)據(jù)的運算,速度較慢且可能有精度丟失。通常我們會把浮點型轉(zhuǎn)換為整型來處理相關(guān)運算。如9.8cm,我們通常把換算為98mm來計算。
l 字符型
字符型,即char類型,也是一種整形,占用一個字節(jié)內(nèi)存空間,常用于存儲字符變量。存儲字符時,字符需要用單引號引用,如
字符都是以整數(shù)形式儲存在char類型變量中的,數(shù)值與字符的對應(yīng)關(guān)系,請參照附錄中ASCII碼表。
l 布爾型
布爾型變量,即boolean。它的值只有兩個:false(假)和true(真)。boolean會占用1個字節(jié)的內(nèi)存空間。
1.1.2 運算符與表達式
C\C++語言中有多種類型的運算符,常見運算符見表2-2:
表 2‑2 常見C\C++運算符
1.1.3表達式
通過運算符將運算對象連接起來的式子,我們稱之為表達式。如
1.1.4數(shù)組
數(shù)組是由一組相同數(shù)據(jù)類型的數(shù)據(jù)構(gòu)成的集合。數(shù)組概念的引入,使得在處理多個相同類型的數(shù)據(jù)時,程序更加清晰和簡潔。
其定義方式如下:
如,定義一個有5個int型元素的數(shù)組:
如果要訪問一個數(shù)組中的某一元素,需要使用
需要注意的是數(shù)組下標(biāo)是從0開始編號的。如,將數(shù)組a中的第1個元素賦值為1:
你可以使用以上方法對數(shù)組賦值,也可以在數(shù)組定義時,對數(shù)組進行賦值。如:
和
是等效的。
1.1.5 字符串
字符串的定義方式有兩種,一種是以字符型數(shù)組方式定義,另一種是使用String類型定義。
使用字符型數(shù)組的方式定義,使用方法和數(shù)組一致,有多少個字符便占用多少個字節(jié)的存儲空間。
大多數(shù)情況下,我們使用String類型來定義字符串,該類型中提供一些操作字符串的成員函數(shù),使得字符串使用起來更為靈活。
如
即可定義一個名為abc的字符串。你可以在定義時為其賦值,或在定義后為其賦值,如
和
是等效的。
相較于數(shù)組形式的定義方法,使用String類型定義字符串會占用更多的存儲空間。
1.1.6注釋
/*與*/之間的內(nèi)容,及 // 之后的內(nèi)容均為程序注釋,使用它可以更好的管理代碼。注釋不會被編譯到程序中,不影響程序的運行。
為程序添加注釋的方法有兩種:
單行注釋:
多行注釋: