1.位操作
c語言支援下列6種位操作符
.&:按位與
.| : 按位或
.^ : 按位異或
.~:取反
.<<:>
.>>:左移
注:操作符不包括左小角的小點,請忽略小點
2.define 巨集定義
define是c語言種的預處理命令,可以提高源**的可讀性,為程式設計提供方便。
常見格式: #define 識別符號 字串
3.ifdef 條件
#ifdef 識別符號
程式段1
#else
程式段2
#endif
他的作用是:當識別符號已經被定義過(一般是用#define命令定義),則對程式段1進行編譯,否則對程式段2進行編譯。
注:其中#else 程式段2可以沒有
另一形式
#if 識別符號
程式段1
#endif
如果識別符號已經被定義過,那麼執行程式段1
4.extern變數申明
extern可以置於變數或者函式前,表示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。
注意:extern申明變數可以多次,但定義只有一次。
5.結構體
宣告結構體型別格式
格式:
struct 結構體名
變數名列表;
例項:struct _gpio
**注:變數名列表結構體宣告的結構體變數,可不寫,以後再定義*
*例如:struct _gpio age,number;//就定義了兩個結構體變數age和number
定義結構體變數後,結構體成員變數的引用方法是
例如我們上面定義了的age結構體變數,我要輸出他的成員變數tser
那麼應該寫為
printf
("%d"
,age.tser)
;//也就是 結構體變數名.成員變數名,沒什麼特殊的
定義結構體指標變數
依然基於上面的_gpio結構體
定義結構體指標變數:struct _gpio *age;
是的,只是結構體變數名前面加了*,但是要訪問結構體變數成員時應該這樣寫
printf
("%d"
,age->tser)
;
6.typedef 型別別名
typedef 用於為現有型別建立乙個新的名字,或成為型別別名,用來簡化變數的定義。typedef在keil5中用的最多的就是定義結構體的型別別名和列舉型別。
struct _gpio
此時我們定義乙個上面的結構體應該這樣定義
struct _gpio age;
但是我們使用typedef後
typedef
struct
gpio
此時我們定義乙個上面的結構體可以這樣
gpio age;
此時我們就定義了乙個叫age的結構體變數
STM32的時鐘基礎知識
一 不使用外部晶振時,osc in和osc out的原理圖設計 1 對於少於100個引腳的產品有兩種方法 1.1 osc in和osc out分別通過10k的電阻接地 提高emc效能。1.2 重對映osc in和osc out為pd0和pd1,配置為推挽輸出並輸出低電平 減少功耗且節省兩個外部電阻。...
C語言知識點(三) 基礎知識
防止該標頭檔案被重複引用 對於 include,編譯器從標準庫路徑開始搜尋 filename.h 對於 include filename.h 編譯器從使用者的工作路徑開始搜尋 filename.h 1 引用本身是變數的別名,對引用的操作就是對變數本身的操作 2 引用必須要被初始化,指標可以不被初始化...
c語言基礎知識點(一)
程式執行過程 1.編譯形成目標 2.鏈結鏈結函式庫,形成可執行的二進位制機器 3.執行在特定機器環境下執行c程式。注釋兩種方式的注釋 單行注釋 多行注釋 作用1.解釋說明 2.遮蔽 除錯 是臨時將某部分 注釋掉,注釋掉的內容不會編譯到程式中 commond 注釋快捷鍵 c語言 第三章 變數賦值是要注...