1、關鍵字概念及sizeof, return
編譯器預先定義了一定意義的字串
sizeof是關鍵字
2、資料型別 (掌握大小範圍
1、char
硬體晶元操作的最小單位:bit
軟體操作的最小單位:8bit==1b (乙個位元組)
char 描述的是硬體能夠操作的在軟體上體現的最小單位
應用場景:
2、int \long\short
整型常量
進製表示
特殊長度的限制符
3、unsigned signed 無符號有符號
補充: 計算機儲存資料機制:正數儲存的二進位制原碼,負數儲存的是二進位制的補碼。 補碼是負數的絕對值反碼加1。
4、float 、double
浮點型常量
5、void (語義意義
void a :佔位標誌,宣告標誌,而不是使用標識
3、自定義資料型別
c編譯器預設的記憶體分配不符合實際資源的形式
自定義=
1、struct 元素之間的和
語法:
struct myabc
;struct myabc mybuf;
結構體中的順序是有要求的
2、union 共用體 共用起始位址的一段內容
應用:技巧性的**
語法:
union myabc
;struct myabc abc;
3、enum 一一枚舉 被命名的整型常數的集合
地位:地位很低
語法:enum 列舉名稱;
#define mon 0
#define tue 1
#define wed 2
enum
;//相當於上面的巨集定義 預設從0開始累加
應用場景:可以把不同晶元的功能打包
4、typedef 只是資料型別的別名
將原有的資料型別取個外號,更易閱讀 ***_t
語法: int a; a是乙個int 型別的變數
typedef int a_t; a是乙個int型別的外號
a_t myheight;
應用場景:和指標一起用比較多
4、邏輯結構 分支/迴圈
c語言提供的程式執行方式
cpu順序執行程式
1、if、else 條件
2、switch、case、default 多分支
switch(整型數字) 不能跟浮點數
3、do while/for
區別:
4、continue、break、goto 迴圈中的控制符
goto: 在函式內部進行跳轉很好用
5、型別修飾符
對記憶體資源存放位置的限定;資料型別是對大小的限定
資源屬性中位置的限定,應用:希望一些程式不可修改,底層驅動中會大量使用
1、auto
預設情況 ----->分配的記憶體都是可讀可寫的區域,區域如果在{}中—>棧空間
2、register
int a;
register int a; //限制變數定義在暫存器上的修飾符
3、static
靜態應用場景:
函式外部的變數(全域性變數
函式的修飾符
4、extern 外部宣告
應用場景:全域性變數函式中使用
5、const 常量的定義
唯讀的變數
記憶體洩漏:
6、volatile 告知編譯器編譯方法的關鍵字,不優化編譯
驅動開發的底層用的很多
修飾變數的值的修改,不僅僅可以通過軟體,也可以通過其他方式(硬體外部的使用者)
關鍵字 嵌入式
const在指標中的用法 const int a 指向常整型的指標 int const a 指向常整型的指標 同上 int const a 指向整型的常指標 指標不可以改變,但是指標指向的物件的值可以改變 const int a 指向常整型數的指標 指標可以改變,但是指向的值是不可以改變的 cons...
嵌入式C語言入門 關鍵字 巨集
關鍵字extern const typedef define aad x,y x y define max x,y x y x y void test int main undef sum printf 在 d 行 n line printf 編譯的時間 s s n date time printf...
嵌入式C語言面試常問關鍵字
修飾變數 變數分為區域性變數和全域性變數,都儲存在靜態區,而普通變數儲存在棧區。靜態全域性變數作用域僅僅侷限於變數被定義的檔案中,其他檔案不能使用 靜態區域性變數只能在函式中使用,同乙個檔案中其他函式沒法使用,它儲存在靜態區,即使函式結束,這個靜態區域性變數的值不會被銷毀,直到程式結束才會銷毀,函式...