STM32系列第4篇--C語言復(fù)習(xí)
位操作
& 與
~ 取反
| 或
^ 異或
<< 左移
>> 右移
define宏定義關(guān)鍵詞
define是C語言中的預(yù)處理命令,它用于宏定義,可以提高源代碼的可讀性,為編程提供方便。
#define標(biāo)識符字符串1
ifdef條件編譯
單片機(jī)程序開發(fā)過程中,經(jīng)常會遇到一種情況,當(dāng)滿足某條件時(shí)對一組語句進(jìn)行編譯,而當(dāng)條件不滿足時(shí)則編譯另一組語句。
#ifdef標(biāo)識符程序段1#else程序段2#endif12345
extern變量申明
C語言中extern可以置于變量或者函數(shù)前,以表示變量或者函數(shù)的定義在別的文件中,提示編譯器遇到此變量和函數(shù)時(shí)在其他模塊中尋找其定義。
這里面要注意,對于extern申明變量可以多次,但定義只有一次。
typedef類型別名
typedefunsignedcharuint8_t;typedefunsignedshortintuint16_t;typedefunsignedintuint32_t;typedefunsignedint64uint64_t;1234
結(jié)構(gòu)體:構(gòu)造類型
Struct結(jié)構(gòu)體名{成員列表1;成員變量2;…}變量名列表;12345
C語言關(guān)鍵字 :static
Static申明的局部變量,存儲在靜態(tài)存儲區(qū)。
它在函數(shù)調(diào)用結(jié)束之后,不會被釋放。它的值會一直保留下來。
所以可以說static申明的局部變量,具有記憶功能。
指針
指針指向的是地址,地址指向的是內(nèi)容:
我們需要一個(gè)變量,來存儲地址,這個(gè)變量的值是地址,但是我們可以通過修改變量的值,來不斷的改變地址,但是,我們?nèi)绻枰淖冊搨€(gè)地址的值的話,就需要,對地址的值進(jìn)行修改,而不改變地址。
inta=10;int*p;p=&a;*p=11;a=?12345
這里我們看到,p 是一個(gè)變量,我們使用p來存儲變量a的地址,這是,我們使用*p對于這個(gè)變量進(jìn)行賦值,那么a的值最后,是多少呢,結(jié)果是11,因?yàn)槲覀兪褂?p賦值,就相當(dāng)于a=11,賦值效果一樣的。
也就是說p是指針,指向地址;*p是地址,指向內(nèi)容。